Skip to content

Commit 5806558

Browse files
committed
chore: fix lint warnings
1 parent 894547d commit 5806558

11 files changed

Lines changed: 31 additions & 19 deletions

File tree

web/public/sw.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
// Empty service worker - placeholder to prevent 500 errors
2-
self.addEventListener('fetch', function(event) {});
2+
self.addEventListener('fetch', function() {});

web/src/app/[locale]/menu/MenuPageClient.test.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ vi.mock('@/lib/api', () => ({
2121

2222
vi.mock('next/image', () => ({
2323
default: (props: Record<string, unknown>) => {
24-
// eslint-disable-next-line @next/next/no-img-element, jsx-a11y/alt-text
25-
const { src, alt, fill: _fill, priority: _priority, sizes: _sizes, unoptimized: _unoptimized, ...rest } = props;
24+
const { src, alt, ...rest } = props;
25+
delete rest.fill;
26+
delete rest.priority;
27+
delete rest.sizes;
28+
delete rest.unoptimized;
29+
// eslint-disable-next-line @next/next/no-img-element
2630
return <img src={src as string} alt={alt as string} {...rest} />;
2731
},
2832
}));

web/src/app/[locale]/menu/MenuPageClient.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,6 @@ export default function MenuPageClient() {
126126
return publishedMenus[0];
127127
}, [data, typeParam, publishedMenus]);
128128

129-
const isVisible = (entry: MenuEntry) => {
130-
if (!currentMenu) return false;
131-
if (entry.hidden) return false;
132-
return entry.menuIds.includes(currentMenu.id);
133-
};
134-
135129
const noticeConfig = data?.info?.menuNotice;
136130
const noticeEnabled = noticeConfig?.enabled !== false;
137131
const defaultNoticeText = `${t("allergyWarning")}\n\n${t("frozenIngredientsNote")}`;
@@ -140,6 +134,10 @@ export default function MenuPageClient() {
140134

141135
const filteredCategories = useMemo(() => {
142136
if (!currentMenu) return [];
137+
const isVisible = (entry: MenuEntry) => {
138+
if (entry.hidden) return false;
139+
return entry.menuIds.includes(currentMenu.id);
140+
};
143141
return categories
144142
.map((cat) => ({
145143
...cat,

web/src/app/admin/AdminContent.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ export default function AdminContent({
271271
<aside className="adm-sidebar" style={{ width: 230, background: "#fff", borderRight: "1px solid #E7E5E4", display: "flex", flexDirection: "column", padding: "14px 0", flexShrink: 0, overflowY: "auto" }}>
272272
{data?.headerImage && (
273273
<div style={{ margin: "0 10px 14px", borderRadius: 8, overflow: "hidden", position: "relative", height: 90, flexShrink: 0 }}>
274+
{/* eslint-disable-next-line @next/next/no-img-element */}
274275
<img
275276
src={data.headerImage}
276277
alt={restaurantName}

web/src/components/admin/pages/CategoriesPage.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,11 @@ export default function CategoriesPage() {
105105
const toggleSelect = (id: string) => {
106106
setSelected((prev) => {
107107
const n = new Set(prev);
108-
n.has(id) ? n.delete(id) : n.add(id);
108+
if (n.has(id)) {
109+
n.delete(id);
110+
} else {
111+
n.add(id);
112+
}
109113
return n;
110114
});
111115
};

web/src/components/admin/pages/MenusPage.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
22

3-
import { useEffect, useState } from "react";
3+
import { useCallback, useEffect, useState } from "react";
44
import {
55
ApiError,
66
createMenu,
@@ -55,19 +55,19 @@ export default function MenusPage() {
5555
const [deleting, setDeleting] = useState<AdminMenu | null>(null);
5656
const [deletingId, setDeletingId] = useState<string | null>(null);
5757

58-
const refresh = async () => {
58+
const refresh = useCallback(async () => {
5959
setLoadError(null);
6060
try {
6161
const res = await fetchMenus();
6262
setMenus(res.menus);
6363
} catch (err) {
6464
setLoadError(err instanceof Error ? err.message : t("menus.loadError"));
6565
}
66-
};
66+
}, [t]);
6767

6868
useEffect(() => {
6969
refresh().finally(() => setLoading(false));
70-
}, []);
70+
}, [refresh]);
7171

7272
// Compute per-menu entry counts using the public catalog the store already loaded.
7373
// (Memberships drive these counts, so categories alone aren't enough.)

web/src/components/admin/pages/SettingsPage.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,8 @@ export default function SettingsPage({ section }: { section?: SettingsSection }
398398

399399
const openLabelModal = (label: AdminLabel, tab: string) => {
400400
const raw = (label.i18n as Record<string, Record<string, string>>) ?? {};
401-
const { [primaryLocale]: _omit, ...rest } = raw;
401+
const rest = { ...raw };
402+
delete rest[primaryLocale];
402403
setTranslatingLabel(label);
403404
setTranslatingLabelName(label.name);
404405
setTranslatingLabelColor(label.color);
@@ -409,7 +410,8 @@ export default function SettingsPage({ section }: { section?: SettingsSection }
409410
const handleSaveTranslations = async () => {
410411
if (!translatingLabel) return;
411412
try {
412-
const { [primaryLocale]: _omit, ...i18nToSave } = translatingLabelI18n;
413+
const i18nToSave = { ...translatingLabelI18n };
414+
delete i18nToSave[primaryLocale];
413415
await updateLabel(translatingLabel.id, { name: translatingLabelName.trim(), color: translatingLabelColor, i18n: i18nToSave });
414416
setLabelsList((prev) => prev.map((l) => l.id === translatingLabel.id ? { ...l, name: translatingLabelName.trim(), color: translatingLabelColor, i18n: i18nToSave } : l));
415417
setTranslatingLabel(null);

web/src/components/ui/Flag.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ export function Flag({ code, customUrl, label, className, decorative }: FlagProp
1515
const ariaHidden = decorative ? true : undefined;
1616

1717
if (customUrl) {
18+
// eslint-disable-next-line @next/next/no-img-element
1819
return <img src={customUrl} alt={alt} className={cls} aria-hidden={ariaHidden} />;
1920
}
2021

2122
const bundled = getBundledFlagSvg(code);
2223
if (bundled) {
24+
// eslint-disable-next-line @next/next/no-img-element
2325
return <img src={svgToDataUrl(bundled)} alt={alt} className={cls} aria-hidden={ariaHidden} />;
2426
}
2527

web/workers/chat/scripts/test-chat.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ const RESTAURANT_ID = process.env.TEST_RESTAURANT_ID || 'demo-restaurant';
1313
// ANSI colours
1414
const RED = '\x1b[31m';
1515
const GREEN = '\x1b[32m';
16-
const YELLOW = '\x1b[33m';
1716
const CYAN = '\x1b[36m';
1817
const BOLD = '\x1b[1m';
1918
const RESET = '\x1b[0m';

web/workers/chat/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function json(data: unknown, status: number, corsHeaders: Record<string, string>
1414
});
1515
}
1616

17-
export default {
17+
const worker = {
1818
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
1919
const url = new URL(request.url);
2020

@@ -107,3 +107,5 @@ export default {
107107
return new Response('Not Found', { status: 404 });
108108
},
109109
};
110+
111+
export default worker;

0 commit comments

Comments
 (0)