diff --git a/src/Components/Filter/OrderBySelect.tsx b/src/Components/Filter/OrderBySelect.tsx index d2dc85e..35b8619 100644 --- a/src/Components/Filter/OrderBySelect.tsx +++ b/src/Components/Filter/OrderBySelect.tsx @@ -29,14 +29,14 @@ const OrderBySelect = () => { options={[ { value: "ascending", label: t("select.array.order.ascending") }, { value: "descending", label: t("select.array.order.descending") }, - { - value: "recently_viewed", - label: t("select.array.order.recently_viewed"), - }, - { - value: "recently_arrived", - label: t("select.array.order.recently_arrived"), - }, + // { + // value: "recently_viewed", + // label: t("select.array.order.recently_viewed"), + // }, + // { + // value: "recently_arrived", + // label: t("select.array.order.recently_arrived"), + // }, ]} /> diff --git a/src/Components/Layout/SideBar/MenuItem.tsx b/src/Components/Layout/SideBar/MenuItem.tsx index 20909cf..4a8e9d4 100644 --- a/src/Components/Layout/SideBar/MenuItem.tsx +++ b/src/Components/Layout/SideBar/MenuItem.tsx @@ -2,6 +2,7 @@ import { useState } from "react"; import { useTranslation } from "react-i18next"; import { MdExpandLess, MdExpandMore } from "react-icons/md"; import { Link, useNavigate } from "react-router-dom"; +import { useFilterStateState } from "../../../zustand/Filter"; export const MenuItem = ({ item, location, index, isOpen }: any) => { const isActive = location.pathname.split("/")[1] === item.path?.slice(1); @@ -12,12 +13,17 @@ export const MenuItem = ({ item, location, index, isOpen }: any) => { const isDropdownOpen = openDropdown === index; const [t] = useTranslation(); const navigate = useNavigate(); + const { setFilter} = useFilterStateState(); + const handleNavigate = ()=>{ + setFilter({}) + navigate(item.path || "/") + } return ( <>
navigate(item.path || "/")} + onClick={() => handleNavigate()} > {item.icon} {/* Conditionally render the text based on sidebar width */} diff --git a/src/Layout/Dashboard/PageHeader.tsx b/src/Layout/Dashboard/PageHeader.tsx index 153822a..3340984 100644 --- a/src/Layout/Dashboard/PageHeader.tsx +++ b/src/Layout/Dashboard/PageHeader.tsx @@ -6,6 +6,7 @@ import useModalHandler from "../../utils/useModalHandler"; import { deletePathSegments } from "../../utils/deletePathSegments"; import { getPrevPathRoute } from "../../utils/getPrevPathRoute"; import PageTitleComponent from "./PageTitle"; +import { useFilterStateState } from "../../zustand/Filter"; const PageHeader = ({ canAdd, @@ -27,8 +28,12 @@ const PageHeader = ({ const { t } = useTranslation(); const PrevPath = getPrevPathRoute(location.pathname); + const { setFilter } = useFilterStateState(); + const handleNavigateToPage = (location: string) => { + setFilter({}) navigate(location); + }; console.log(); diff --git a/src/Layout/Dashboard/PageTitle.tsx b/src/Layout/Dashboard/PageTitle.tsx index 4c3d757..12c991e 100644 --- a/src/Layout/Dashboard/PageTitle.tsx +++ b/src/Layout/Dashboard/PageTitle.tsx @@ -1,16 +1,21 @@ import React from 'react' import { useLocation, useNavigate } from 'react-router-dom' import { usePageTitleState } from '../../zustand/PageTitleState' +import { useFilterStateState } from '../../zustand/Filter' const PageTitleComponent = () => { - const {PageTitle,setPageTitle} = usePageTitleState() + const {PageTitle} = usePageTitleState() const navigate = useNavigate() const location = useLocation() + const { setFilter } = useFilterStateState(); + + const handleNavigate = (path:string)=>{ const currentPath = location.pathname ; const newPath = currentPath?.split(path)?.[0] + path ; if(newPath !== currentPath){ + setFilter({}) navigate(newPath) } } diff --git a/src/Layout/Ui/SideBar.tsx b/src/Layout/Ui/SideBar.tsx index 6b9783f..17de545 100644 --- a/src/Layout/Ui/SideBar.tsx +++ b/src/Layout/Ui/SideBar.tsx @@ -13,6 +13,7 @@ import { CiMenuBurger, CiSettings } from "react-icons/ci"; import { IoIosMenu } from "react-icons/io"; import { HiMenuAlt2, HiMenuAlt3 } from "react-icons/hi"; import { RoleByType } from "../../utils/RoleByType"; +import { useFilterStateState } from "../../zustand/Filter"; const SideBar = ({ isOpen, @@ -25,7 +26,6 @@ const SideBar = ({ const navigate = useNavigate(); const { logout } = useAuthState(); const [t] = useTranslation(); - const branch_name = getLocalStorage(BRANCH_OBJECT_KEY)?.name; const toggleSidebar = () => { setIsOpen((prev: boolean) => (prev === true ? false : true)); diff --git a/src/Pages/Admin/Grade/Table.tsx b/src/Pages/Admin/Grade/Table.tsx index 9f09f70..7a9dc43 100644 --- a/src/Pages/Admin/Grade/Table.tsx +++ b/src/Pages/Admin/Grade/Table.tsx @@ -3,13 +3,18 @@ import React from "react"; import DataTable from "../../../Layout/Dashboard/Table/DataTable"; import { useGetAllGrade } from "../../../api/grade"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { const { filterState } = useFilterState(); - + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; const response = useGetAllGrade({ pagination: true, ...filterState, + name, + sort_by }); return ; diff --git a/src/Pages/Admin/Param/Table.tsx b/src/Pages/Admin/Param/Table.tsx index a377458..b424006 100644 --- a/src/Pages/Admin/Param/Table.tsx +++ b/src/Pages/Admin/Param/Table.tsx @@ -1,17 +1,22 @@ import React from "react"; import DataTable from "../../../Layout/Dashboard/Table/DataTable"; import { useColumns } from "./useTableColumns"; -import useSearchQuery from "../../../api/utils/useSearchQuery"; import { useGetAllParam } from "../../../api/param"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; import { useTranslation } from "react-i18next"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { - const [searchQuery] = useSearchQuery("name"); const { filterState } = useFilterState(); + const { Filter } = useFilterStateState(); + + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; + const response = useGetAllParam({ - name: searchQuery, + name, + sort_by, pagination: true, ...filterState, }); diff --git a/src/Pages/Admin/QuestionBank/Table.tsx b/src/Pages/Admin/QuestionBank/Table.tsx index df9cf65..fdb4446 100644 --- a/src/Pages/Admin/QuestionBank/Table.tsx +++ b/src/Pages/Admin/QuestionBank/Table.tsx @@ -9,13 +9,15 @@ import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { const { filterState } = useFilterState(); const { setFilter,Filter } = useFilterStateState(); + const sort_by = Filter?.sort_by ; console.log(filterState,"filterState"); const response = useGetAllQuestion({ pagination: true, ...filterState, - content:Filter?.content + content:Filter?.content, + sort_by, }); diff --git a/src/Pages/Admin/Report/Table.tsx b/src/Pages/Admin/Report/Table.tsx index 9f22aee..b7c5d7b 100644 --- a/src/Pages/Admin/Report/Table.tsx +++ b/src/Pages/Admin/Report/Table.tsx @@ -1,16 +1,20 @@ import React from "react"; -import { useGetAllTag } from "../../../api/tags"; import DataTable from "../../../Layout/Dashboard/Table/DataTable"; import { useColumns } from "./useTableColumns"; -import useSearchQuery from "../../../api/utils/useSearchQuery"; import { useGetAllReport } from "../../../api/report"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { - const [searchQuery] = useSearchQuery("name"); const { filterState } = useFilterState(); + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; + + const response = useGetAllReport({ - name: searchQuery, + name, + sort_by, pagination: true, ...filterState, }); diff --git a/src/Pages/Admin/Reseller/Table.tsx b/src/Pages/Admin/Reseller/Table.tsx index d539438..9fbf12b 100644 --- a/src/Pages/Admin/Reseller/Table.tsx +++ b/src/Pages/Admin/Reseller/Table.tsx @@ -4,12 +4,17 @@ import { useColumns } from "./useTableColumns"; import useSearchQuery from "../../../api/utils/useSearchQuery"; import { useGetAllReseller } from "../../../api/reseller"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { - const [searchQuery] = useSearchQuery("name"); const { filterState } = useFilterState(); + const { Filter } = useFilterStateState(); + + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; const response = useGetAllReseller({ - name: searchQuery, + name, + sort_by, pagination: true, ...filterState, }); diff --git a/src/Pages/Admin/Student/Table.tsx b/src/Pages/Admin/Student/Table.tsx index 35d08d5..ebf9fe5 100644 --- a/src/Pages/Admin/Student/Table.tsx +++ b/src/Pages/Admin/Student/Table.tsx @@ -3,11 +3,20 @@ import React from "react"; import DataTable from "../../../Layout/Dashboard/Table/DataTable"; import { useGetAllStudent } from "../../../api/student"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { const { filterState } = useFilterState(); + const { Filter } = useFilterStateState(); + + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; + + const response = useGetAllStudent({ + name, + sort_by, pagination: true, ...filterState, }); diff --git a/src/Pages/Admin/Tags/Table.tsx b/src/Pages/Admin/Tags/Table.tsx index 1d63521..64a7b8b 100644 --- a/src/Pages/Admin/Tags/Table.tsx +++ b/src/Pages/Admin/Tags/Table.tsx @@ -2,15 +2,19 @@ import React from "react"; import { useGetAllTag } from "../../../api/tags"; import DataTable from "../../../Layout/Dashboard/Table/DataTable"; import { useColumns } from "./useTableColumns"; -import useSearchQuery from "../../../api/utils/useSearchQuery"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { - const [searchQuery] = useSearchQuery("name"); + const { filterState } = useFilterState(); + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; const response = useGetAllTag({ - name: searchQuery, pagination: true, + name, + sort_by, ...filterState, }); diff --git a/src/Pages/Admin/Unit/DrapableTable.tsx b/src/Pages/Admin/Unit/DrapableTable.tsx index 207d02d..3c8e0dc 100644 --- a/src/Pages/Admin/Unit/DrapableTable.tsx +++ b/src/Pages/Admin/Unit/DrapableTable.tsx @@ -26,6 +26,7 @@ const LoadingLottie = React.lazy( import { useTranslation } from "react-i18next"; import { useColumns } from "./useTableColumns"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; interface DataType { id: string; // Unique identifier for each row @@ -93,10 +94,14 @@ const Row: React.FC = (props) => { const DrapableTable: React.FC = () => { const { subject_id } = useParams(); const { filterState } = useFilterState(); - + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; const response = useGetAllUnit({ subject_id: subject_id, pagination: false, + name, + sort_by, ...filterState, }); diff --git a/src/Pages/Admin/Unit/Table.tsx b/src/Pages/Admin/Unit/Table.tsx index 1e47790..e20d6a3 100644 --- a/src/Pages/Admin/Unit/Table.tsx +++ b/src/Pages/Admin/Unit/Table.tsx @@ -6,20 +6,24 @@ import { useParams } from "react-router-dom"; import { ParamsEnum } from "../../../enums/params"; import { useObjectToEdit } from "../../../zustand/ObjectToEditState"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { const { subject_id } = useParams(); - + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; const response = useGetAllUnit({ subject_id: subject_id, pagination: true, + name, + sort_by }); + + const { setOldObjectToEdit } = useObjectToEdit(); - // console.log(response?.data?.data, "response?.data"); const data = response?.data?.data; - const lastElement = - response?.data?.data && response?.data?.data[data?.length - 1]; - // console.log(lastElement); + const lastElement = response?.data?.data && response?.data?.data[data?.length - 1]; useEffect(() => { if (lastElement) { diff --git a/src/Pages/Admin/User/Table.tsx b/src/Pages/Admin/User/Table.tsx index c7297a8..ad00dd6 100644 --- a/src/Pages/Admin/User/Table.tsx +++ b/src/Pages/Admin/User/Table.tsx @@ -2,15 +2,18 @@ import React from "react"; import { useGetAllTag } from "../../../api/tags"; import DataTable from "../../../Layout/Dashboard/Table/DataTable"; import { useColumns } from "./useTableColumns"; -import useSearchQuery from "../../../api/utils/useSearchQuery"; import { useGetAllUser } from "../../../api/user"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { - const [searchQuery] = useSearchQuery("name"); const { filterState } = useFilterState(); + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; const response = useGetAllUser({ - name: searchQuery, + name, + sort_by, pagination: true, ...filterState, }); diff --git a/src/Pages/Admin/lesson/DrapableTable.tsx b/src/Pages/Admin/lesson/DrapableTable.tsx index 337cdbb..aad8339 100644 --- a/src/Pages/Admin/lesson/DrapableTable.tsx +++ b/src/Pages/Admin/lesson/DrapableTable.tsx @@ -26,6 +26,7 @@ const LoadingLottie = React.lazy( import { useTranslation } from "react-i18next"; import { useColumns } from "./useTableColumns"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; interface DataType { id: string; // Unique identifier for each row @@ -94,9 +95,15 @@ const DrapableTable: React.FC = () => { const { unit_id } = useParams(); const { filterState } = useFilterState(); + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; + const response = useGetAllLesson({ unit_id: unit_id, pagination: false, + name, + sort_by, ...filterState, }); diff --git a/src/Pages/Admin/lesson/Page.tsx b/src/Pages/Admin/lesson/Page.tsx index 52f1781..c4520eb 100644 --- a/src/Pages/Admin/lesson/Page.tsx +++ b/src/Pages/Admin/lesson/Page.tsx @@ -8,7 +8,6 @@ import { useGetAllUnit } from "../../../api/unit"; import { ModalEnum } from "../../../enums/Model"; import { useDeleteLesson } from "../../../api/lesson"; import { useGetAllGrade } from "../../../api/grade"; -import { useGetAllCurriculum } from "../../../api/curriculum"; import { useGetAllSubject } from "../../../api/subject"; import PageHeader from "../../../Layout/Dashboard/PageHeader"; import FilterLayout from "../../../Layout/Dashboard/FilterLayout"; diff --git a/src/Pages/Admin/lesson/Table.tsx b/src/Pages/Admin/lesson/Table.tsx index eab91be..2926e86 100644 --- a/src/Pages/Admin/lesson/Table.tsx +++ b/src/Pages/Admin/lesson/Table.tsx @@ -6,13 +6,21 @@ import { useParams } from "react-router-dom"; import { ParamsEnum } from "../../../enums/params"; import { useObjectToEdit } from "../../../zustand/ObjectToEditState"; import { useFilterState } from "../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { const { unit_id } = useParams(); + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; + + const response = useGetAllLesson({ unit_id: unit_id, pagination: true, + name, + sort_by }); const { setOldObjectToEdit } = useObjectToEdit(); diff --git a/src/Pages/Admin/question/Table.tsx b/src/Pages/Admin/question/Table.tsx index d0917ce..72d5627 100644 --- a/src/Pages/Admin/question/Table.tsx +++ b/src/Pages/Admin/question/Table.tsx @@ -10,13 +10,16 @@ import { useFilterStateState } from "../../../zustand/Filter"; const App: React.FC = () => { const { lesson_id } = useParams(); const { filterState } = useFilterState(); - const { setFilter,Filter } = useFilterStateState(); + const { Filter } = useFilterStateState(); + const sort_by = Filter?.sort_by ; + const content = Filter?.content ; const response = useGetAllQuestion({ lessonsIds: [lesson_id], pagination: true, ...filterState, - content:Filter?.content + content, + sort_by }); return ; }; diff --git a/src/Pages/Admin/subject/Table/Page.tsx b/src/Pages/Admin/subject/Table/Page.tsx index 03addb0..5f02289 100644 --- a/src/Pages/Admin/subject/Table/Page.tsx +++ b/src/Pages/Admin/subject/Table/Page.tsx @@ -21,12 +21,12 @@ const DeleteModalForm = lazy( ); const TableWithHeader = () => { - const { handel_open_model } = useModalHandler(); const [t] = useTranslation(); const deleteMutation = useDeleteSubject(); const { grade_id } = useParams(); - + console.log(grade_id); + const { data: grade } = useGetAllGrade({ show: grade_id, }); diff --git a/src/Pages/Admin/subject/Table/TablePage.tsx b/src/Pages/Admin/subject/Table/TablePage.tsx index 4be7b90..795c381 100644 --- a/src/Pages/Admin/subject/Table/TablePage.tsx +++ b/src/Pages/Admin/subject/Table/TablePage.tsx @@ -4,15 +4,20 @@ import DataTable from "../../../../Layout/Dashboard/Table/DataTable"; import { useColumns } from "./useTableColumns"; import { ParamsEnum } from "../../../../enums/params"; import { useFilterState } from "../../../../Components/Utils/Filter/FilterState"; +import { useFilterStateState } from "../../../../zustand/Filter"; const TablePage: React.FC = () => { const { grade_id } = useParams(); const { filterState } = useFilterState(); - + const { Filter } = useFilterStateState(); + const name = Filter?.name ; + const sort_by = Filter?.sort_by ; const response = useGetAllSubject({ grade_id: grade_id, pagination: true, ...filterState, + name, + sort_by }); return ; diff --git a/src/Styles/App/Varibils.scss b/src/Styles/App/Varibils.scss index 763cb52..9d6875d 100644 --- a/src/Styles/App/Varibils.scss +++ b/src/Styles/App/Varibils.scss @@ -2,7 +2,7 @@ --primary: #3d5ee1; --secondary: #303972; --field: #b0d9ff; - --text: black; + --text: #202C4B; --subtext: #9d9d9d; --label: #0d5190; --bg: rgb(255, 255, 255); @@ -38,35 +38,3 @@ --fieldHeight: 40px; } -:root:has(.dark) { - --primary: #3d5ee1; - --secondary: #303972; - --field: #b0d9ff; - --text: white; - --subtext: #9d9d9d; - --label: #0d5190; - --bg: rgb(51, 51, 51); - --bg2: black; - --bg3: rgba(255, 255, 255, 0.82); - --border-color: #b0d9ff; - --shadow: rgba(0, 0, 0, 0.15); - --white: white; - --bgSideBar: #0f0c1c; - --textSideBar: #ffffff; - --sideBarWidth: 14vw; - --sideBarMinWidth: 14vw; - --sideBarSpace: 1%; - --links: #25638f; - - --button: #2d3748; - --layoutPadding: 3%; - --border-radius: 10px; - - --utils_color_one: #fb7d5b; - --utils_color_tow: #fcc43e; - - --presence: #31ce83; - --absence: #ce3131; - --lateArrival: #f0e43b; - --earlyDeparture: #3d5ee1; -} diff --git a/src/Styles/App/font.scss b/src/Styles/App/font.scss index 081343d..041802f 100644 --- a/src/Styles/App/font.scss +++ b/src/Styles/App/font.scss @@ -1,19 +1,5 @@ -@font-face { - font-family: "Poppins_Bold"; - src: url("../../font/Poppins-Bold.ttf") format("truetype"); /* Specify the path to the font file */ - font-display: swap; - font-weight: normal; - font-style: normal; -} +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;700&display=swap'); body { - font-family: "Poppins", sans-serif; /* Use ABeeZee font for body text */ -} - -@mixin Font_Poppins { - font-family: "Poppins"; /* Use ABeeZee font for body text */ -} - -@mixin Font_Poppins_Bold { - font-family: "Poppins-Bold"; /* Use ABeeZee font for body text */ + font-family: "Noto Sans Arabic", sans-serif; /* Use Noto Sans Arabic for body text */ } diff --git a/src/Styles/Layout/header_cards_section.scss b/src/Styles/Layout/header_cards_section.scss index 0015c58..eaf178f 100644 --- a/src/Styles/Layout/header_cards_section.scss +++ b/src/Styles/Layout/header_cards_section.scss @@ -48,7 +48,6 @@ h5 { color: var(--secondary); font-size: 0.8vw; - @include Font_Poppins; font-weight: bold; } diff --git a/src/Styles/Pages/Student.scss b/src/Styles/Pages/Student.scss index 351c917..8e19135 100644 --- a/src/Styles/Pages/Student.scss +++ b/src/Styles/Pages/Student.scss @@ -37,7 +37,6 @@ h6 { font-weight: bold; color: var(--secondary); - @include Font_Poppins_Bold; font-size: 1.5vw; } diff --git a/src/api/helper/useGetQuery.ts b/src/api/helper/useGetQuery.ts index 18bf7a4..77fc3c0 100644 --- a/src/api/helper/useGetQuery.ts +++ b/src/api/helper/useGetQuery.ts @@ -13,9 +13,6 @@ function useGetQuery( options: any = {}, ) { const axios = useAxios(); - const { Filter } = useFilterStateState(); - const sort_by = Filter?.sort_by ?? null; - const name = Filter?.name ?? null; const { show, pagination, ...remainingParams } = params; const location = useLocation(); @@ -23,8 +20,8 @@ function useGetQuery( const { page, per_page } = PaginationParams(location); const paramToSend = pagination - ? { page: page, per_page: per_page, name, ...remainingParams, sort_by } - : { name, ...remainingParams, sort_by }; + ? { page: page, per_page: per_page, ...remainingParams } + : { ...remainingParams }; const filteredParams = filterParams(paramToSend); diff --git a/src/font/Poppins-Bold.ttf b/src/font/Poppins-Bold.ttf deleted file mode 100644 index 00559ee..0000000 Binary files a/src/font/Poppins-Bold.ttf and /dev/null differ