fix sidebar state
This commit is contained in:
parent
ccbebf99a1
commit
f095644f25
|
|
@ -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>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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 (
|
||||||
|
|
|
||||||
|
|
@ -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": "سجلات الطلاب",
|
||||||
|
|
|
||||||
13
src/zustand/SideBarState.ts
Normal file
13
src/zustand/SideBarState.ts
Normal 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,
|
||||||
|
})),
|
||||||
|
}));
|
||||||
Loading…
Reference in New Issue
Block a user