From 15af39fc84ff9edf34b6106800212806dc8436fc Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sun, 13 Apr 2025 10:22:49 +0330 Subject: [PATCH] sidebar in mobile --- package-lock.json | 36 +++++++++++- package.json | 3 +- src/app/layout.tsx | 2 + src/shared/Header.tsx | 4 ++ src/shared/SideBar.tsx | 101 ++++++++++++++++++++++++++++++++ src/shared/SideBarItem.tsx | 46 +++++++++++++++ src/shared/store/sharedStore.ts | 7 +++ src/shared/types/SharedTypes.ts | 4 ++ 8 files changed, 199 insertions(+), 4 deletions(-) create mode 100644 src/shared/SideBar.tsx create mode 100644 src/shared/SideBarItem.tsx create mode 100644 src/shared/store/sharedStore.ts create mode 100644 src/shared/types/SharedTypes.ts diff --git a/package-lock.json b/package-lock.json index 0bd4fca..18fa98a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ "react-dom": "^19.0.0", "react-spinners": "^0.15.0", "swiper": "^11.2.6", - "tailwind-merge": "^3.0.2" + "tailwind-merge": "^3.0.2", + "zustand": "^5.0.3" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -1156,7 +1157,7 @@ "version": "19.0.12", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz", "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -2065,7 +2066,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/damerau-levenshtein": { @@ -5742,6 +5743,35 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index ca96f53..9c1def1 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "react-dom": "^19.0.0", "react-spinners": "^0.15.0", "swiper": "^11.2.6", - "tailwind-merge": "^3.0.2" + "tailwind-merge": "^3.0.2", + "zustand": "^5.0.3" }, "devDependencies": { "@eslint/eslintrc": "^3", diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 199ce81..cba107c 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -5,6 +5,7 @@ import "./globals.css"; import "@/assets/fonts/irancell/style.css"; import Header from "@/shared/Header"; import Footer from "@/shared/Footer"; +import SideBar from "@/shared/SideBar"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -32,6 +33,7 @@ export default function RootLayout({ className={`${geistSans.variable} ${geistMono.variable} antialiased`} >
+
{children}