diff --git a/web/dashboard/public/icons/icon-180.png b/web/dashboard/public/icons/icon-180.png new file mode 100644 index 0000000..686ac82 Binary files /dev/null and b/web/dashboard/public/icons/icon-180.png differ diff --git a/web/dashboard/public/icons/icon-192.png b/web/dashboard/public/icons/icon-192.png index 37d557f..7de8920 100644 Binary files a/web/dashboard/public/icons/icon-192.png and b/web/dashboard/public/icons/icon-192.png differ diff --git a/web/dashboard/public/icons/icon-32.png b/web/dashboard/public/icons/icon-32.png new file mode 100644 index 0000000..266981a Binary files /dev/null and b/web/dashboard/public/icons/icon-32.png differ diff --git a/web/dashboard/public/icons/icon-48.png b/web/dashboard/public/icons/icon-48.png new file mode 100644 index 0000000..721bc90 Binary files /dev/null and b/web/dashboard/public/icons/icon-48.png differ diff --git a/web/dashboard/public/icons/icon-512.png b/web/dashboard/public/icons/icon-512.png index d2ed7e3..86926e8 100644 Binary files a/web/dashboard/public/icons/icon-512.png and b/web/dashboard/public/icons/icon-512.png differ diff --git a/web/dashboard/public/icons/icon-maskable-512.png b/web/dashboard/public/icons/icon-maskable-512.png index d2ed7e3..ea10cd1 100644 Binary files a/web/dashboard/public/icons/icon-maskable-512.png and b/web/dashboard/public/icons/icon-maskable-512.png differ diff --git a/web/dashboard/src/app/[locale]/layout.tsx b/web/dashboard/src/app/[locale]/layout.tsx index c9e2e3d..e6c49c9 100644 --- a/web/dashboard/src/app/[locale]/layout.tsx +++ b/web/dashboard/src/app/[locale]/layout.tsx @@ -23,11 +23,13 @@ export const metadata: Metadata = { manifest: "/manifest.webmanifest", icons: { icon: [ + { url: "/icons/icon-32.png", sizes: "32x32", type: "image/png" }, + { url: "/icons/icon-48.png", sizes: "48x48", type: "image/png" }, { url: "/icons/icon-192.png", sizes: "192x192", type: "image/png" }, { url: "/icons/icon-512.png", sizes: "512x512", type: "image/png" }, ], - shortcut: "/icons/icon-192.png", - apple: "/icons/icon-192.png", + shortcut: "/icons/icon-32.png", + apple: "/icons/icon-180.png", }, appleWebApp: { capable: true, diff --git a/web/dashboard/src/app/q/layout.tsx b/web/dashboard/src/app/q/layout.tsx index 7a14d4f..032d035 100644 --- a/web/dashboard/src/app/q/layout.tsx +++ b/web/dashboard/src/app/q/layout.tsx @@ -9,7 +9,13 @@ export const metadata: Metadata = { title: "منوی کافه — میزی", description: "مشاهده منو و ثبت سفارش از میز", manifest: "/manifest.webmanifest", - icons: { icon: "/icons/icon-192.png", apple: "/icons/icon-192.png" }, + icons: { + icon: [ + { url: "/icons/icon-32.png", sizes: "32x32", type: "image/png" }, + { url: "/icons/icon-192.png", sizes: "192x192", type: "image/png" }, + ], + apple: "/icons/icon-180.png", + }, robots: { index: false, follow: false }, }; diff --git a/web/dashboard/src/components/qr/qr-guest-menu-body.tsx b/web/dashboard/src/components/qr/qr-guest-menu-body.tsx index 4a0c7da..a063bd7 100644 --- a/web/dashboard/src/components/qr/qr-guest-menu-body.tsx +++ b/web/dashboard/src/components/qr/qr-guest-menu-body.tsx @@ -14,6 +14,34 @@ import type { CafeThemePalette } from "@/lib/cafe-theme"; import { hasMenu3dView } from "@/lib/menu-3d"; import { Box } from "lucide-react"; +/** + * Minimal placeholder shown when a menu item has no image — a faint café-cup + * glyph on the themed muted surface, so the guest menu looks intentional + * instead of showing blank boxes. `className` controls the box size/shape. + */ +function MenuImageFallback({ className }: { className?: string }) { + return ( +