From 87c022eaef7cfc470af9862f13bd23364865801f Mon Sep 17 00:00:00 2001 From: thinh Date: Wed, 22 Oct 2025 14:57:17 +0700 Subject: [PATCH 1/4] Added: fullmenu page --- package.json | 2 + public/sitemap.xml | 7 +- src/app/menu/page.tsx | 26 ++ src/components/Header/Header.tsx | 2 +- .../Home/ProductSection/ProductSection.scss | 1 + .../Home/ProductSection/ProductSection.tsx | 8 +- src/components/Menu/MenuPage/MenuPage.scss | 332 ++++++++++++++ src/components/Menu/MenuPage/MenuPage.tsx | 407 ++++++++++++++++++ src/components/Menu/MenuPage/index.ts | 1 + .../Menu/ProductCard/ProductCard.scss | 213 +++++++++ .../Menu/ProductCard/ProductCard.tsx | 102 +++++ src/components/Menu/ProductCard/index.ts | 1 + src/components/index.ts | 3 + src/constants/layout.ts | 1 + src/constants/menu.ts | 267 ++++++++++++ src/types/index.ts | 13 +- src/types/isotope-layout.d.ts | 34 ++ yarn.lock | 56 +++ 18 files changed, 1468 insertions(+), 8 deletions(-) create mode 100644 src/app/menu/page.tsx create mode 100644 src/components/Menu/MenuPage/MenuPage.scss create mode 100644 src/components/Menu/MenuPage/MenuPage.tsx create mode 100644 src/components/Menu/MenuPage/index.ts create mode 100644 src/components/Menu/ProductCard/ProductCard.scss create mode 100644 src/components/Menu/ProductCard/ProductCard.tsx create mode 100644 src/components/Menu/ProductCard/index.ts create mode 100644 src/constants/menu.ts create mode 100644 src/types/isotope-layout.d.ts diff --git a/package.json b/package.json index 1e06f2c..29d3d78 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@types/node": "^20.10.5", "@types/react": "^18.2.45", "@types/react-dom": "^18.2.18", + "isotope-layout": "^3.0.6", "next": "^14.0.4", "next-seo": "^6.8.0", "next-sitemap": "^4.2.3", @@ -48,6 +49,7 @@ }, "devDependencies": { "@next/eslint-plugin-next": "^15.5.4", + "@types/isotope-layout": "^3.0.8", "@typescript-eslint/eslint-plugin": "^8.44.1", "@typescript-eslint/parser": "^8.44.1", "cross-env": "^10.0.0", diff --git a/public/sitemap.xml b/public/sitemap.xml index e60eccf..5d98da0 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -1,6 +1,7 @@ -https://trinhquocthinh.github.io/foodhub/robots.txt2025-10-21T02:54:34.787Zmonthly0.7 -https://trinhquocthinh.github.io/foodhub/sitemap.xml2025-10-21T02:54:34.787Zmonthly0.7 -https://trinhquocthinh.github.io/foodhub2025-10-21T02:54:34.787Zdaily1 +https://trinhquocthinh.github.io/foodhub2025-10-21T10:49:52.341Zdaily1 +https://trinhquocthinh.github.io/foodhub/sitemap.xml2025-10-21T10:49:52.341Zmonthly0.7 +https://trinhquocthinh.github.io/foodhub/robots.txt2025-10-21T10:49:52.341Zmonthly0.7 +https://trinhquocthinh.github.io/foodhub/menu2025-10-21T10:49:52.341Zmonthly0.7 \ No newline at end of file diff --git a/src/app/menu/page.tsx b/src/app/menu/page.tsx new file mode 100644 index 0000000..03ed5f6 --- /dev/null +++ b/src/app/menu/page.tsx @@ -0,0 +1,26 @@ +import type { Metadata } from 'next'; + +import { MenuPage } from '@/components'; +import { + menuCategories, + menuDietaryFilters, + menuItems, + menuSortOptions, +} from '@/constants/menu'; + +export const metadata: Metadata = { + title: 'Full Menu', + description: + 'Explore the full Foodhub menu with filters, dietary tags, and animated sorting to find your perfect dish.', +}; + +const FullMenuPage = () => ( + +); + +export default FullMenuPage; diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 8ee1eee..395a0b4 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -49,7 +49,7 @@ const Header = () => {