fix sidebar state

This commit is contained in:
Moaz Dawalibi 2024-10-02 10:16:27 +03:00
parent ccbebf99a1
commit f095644f25
4 changed files with 23 additions and 6 deletions

View File

@ -2,6 +2,7 @@ import React, { useState } from "react";
import NavBar from "./NavBar"; import NavBar from "./NavBar";
import SideBar from "./SideBar"; import SideBar from "./SideBar";
import ProtectedRouteProvider from "../../lib/ProtectedRouteProvider"; import ProtectedRouteProvider from "../../lib/ProtectedRouteProvider";
import { useSideBarState } from "../../zustand/SideBarState";
const Layout = ({ const Layout = ({
children, children,
@ -10,17 +11,18 @@ const Layout = ({
children: React.ReactNode; children: React.ReactNode;
className?: string; className?: string;
}) => { }) => {
const [isOpen, setIsOpen] = useState(true);
const {openSideBar, setOpenSideBar} = useSideBarState();
return ( return (
<ProtectedRouteProvider className="Layout"> <ProtectedRouteProvider className="Layout">
<main <main
className={`${className} ${isOpen ? "Layout_Body" : "Layout_Body side_bar_close"}`} className={`${className} ${openSideBar ? "Layout_Body" : "Layout_Body side_bar_close"}`}
> >
<NavBar isOpen={isOpen} /> <NavBar isOpen={openSideBar} />
<div className="Layout_Children">{children}</div> <div className="Layout_Children">{children}</div>
</main> </main>
<SideBar isOpen={isOpen} setIsOpen={setIsOpen} /> <SideBar isOpen={openSideBar} setIsOpen={setOpenSideBar} />
</ProtectedRouteProvider> </ProtectedRouteProvider>
); );
}; };

View File

@ -28,7 +28,7 @@ const SideBar = ({
const [t] = useTranslation(); const [t] = useTranslation();
const toggleSidebar = () => { const toggleSidebar = () => {
setIsOpen((prev: boolean) => (prev === true ? false : true)); setIsOpen((prev: boolean) => !prev);
}; };
return ( return (

View File

@ -413,7 +413,9 @@
"are_you_sure_about_sale":"هل أنت متأكد من عملية البيع ؟", "are_you_sure_about_sale":"هل أنت متأكد من عملية البيع ؟",
"Coupon":"قسيمة", "Coupon":"قسيمة",
"financial_collection":"التحصيلات", "financial_collection":"التحصيلات",
"show_collection":"حصيلة" "show_collection":"حصيلة",
"city":"مدينة",
"financialCollection":"التحصيلات"
}, },
"education_class_actions": { "education_class_actions": {
"Student_Records": "سجلات الطلاب", "Student_Records": "سجلات الطلاب",

View File

@ -0,0 +1,13 @@
import { create } from "zustand";
interface ModalState {
openSideBar: boolean;
setOpenSideBar: (value: boolean | ((prevState: boolean) => boolean)) => void;
}
export const useSideBarState = create<ModalState>((set) => ({
openSideBar: true,
setOpenSideBar: (value) => set((state) => ({
openSideBar: typeof value === 'function' ? value(state.openSideBar) : value,
})),
}));