Feature/faaliyat rozane cartable

This commit is contained in:
2024-12-23 08:20:46 +00:00
committed by AmirHossein Mahmoodi
parent f2ef4cd1db
commit 4b25071e41
75 changed files with 3722 additions and 236 deletions

View File

@@ -17,6 +17,16 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns,
const [sortData, setSortData] = useState(initialSort || []);
const [initHide, setInitHide] = useState({});
const [hideData, setHideData] = useState({});
const [isDirty, setIsDirty] = useState(false);
useEffect(() => {
const hasConflict =
JSON.stringify(hideData) !== JSON.stringify(initHide) ||
JSON.stringify(sortData) !== JSON.stringify(initSort) ||
JSON.stringify(filterData) !== JSON.stringify(initFilter);
setIsDirty(hasConflict);
}, [hideData, sortData, filterData, initHide, initSort, initFilter]);
useEffect(() => {
if (!settingStore) return;
@@ -125,7 +135,9 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns,
if (!isInitStates) return <LinearProgress sx={{ borderRadius: 2 }} />;
return (
<DataTableContext.Provider value={{ filterData, setFilterData, sortData, setSortData, hideData, setHideData }}>
<DataTableContext.Provider
value={{ filterData, setFilterData, sortData, setSortData, hideData, setHideData, isDirty }}
>
{children}
</DataTableContext.Provider>
);

View File

@@ -2,8 +2,9 @@ import { useContext } from "react";
import { DataTableContext } from "@/lib/contexts/DataTable";
const useTableSetting = () => {
const { filterData, setFilterData, sortData, setSortData, hideData, setHideData } = useContext(DataTableContext);
return { filterData, setFilterData, sortData, setSortData, hideData, setHideData };
const { filterData, setFilterData, sortData, setSortData, hideData, setHideData, isDirty } =
useContext(DataTableContext);
return { filterData, setFilterData, sortData, setSortData, hideData, setHideData, isDirty };
};
export default useTableSetting;

View File

@@ -0,0 +1,29 @@
import { useEffect, useState } from "react";
import { GET_ROAD_ITEMS_SUB_ITEM } from "@/core/utils/routes";
import useRequest from "@/lib/hooks/useRequest";
const useRoadItemGetItems = (id) => {
const requestServer = useRequest();
const [subItemsList, setSubItemsList] = useState([]);
const [loadingSubItemsList, setLoadingSubItemsList] = useState(true);
const [errorSubItemsList, setErrorSubItemsList] = useState(null);
useEffect(() => {
const fetchSubItems = async () => {
try {
const response = await requestServer(`${GET_ROAD_ITEMS_SUB_ITEM}/${id}`);
setSubItemsList(response.data.data);
setLoadingSubItemsList(false);
} catch (e) {
setErrorSubItemsList(e);
setLoadingSubItemsList(false);
}
};
fetchSubItems();
}, []);
return { subItemsList, loadingSubItemsList, errorSubItemsList };
};
export default useRoadItemGetItems;

View File

@@ -0,0 +1,29 @@
import { useEffect, useState } from "react";
import { GET_ROAD_ITEMS_ITEM } from "@/core/utils/routes";
import useRequest from "@/lib/hooks/useRequest";
const useRoadItemGetItems = () => {
const requestServer = useRequest();
const [itemsList, setItemsList] = useState([]);
const [loadingItemsList, setLoadingItemsList] = useState(true);
const [errorItemsList, setErrorItemsList] = useState(null);
useEffect(() => {
const fetchItems = async () => {
try {
const response = await requestServer(`${GET_ROAD_ITEMS_ITEM}`);
setItemsList(response.data.data);
setLoadingItemsList(false);
} catch (e) {
setErrorItemsList(e);
setLoadingItemsList(false);
}
};
fetchItems();
}, []);
return { itemsList, loadingItemsList, errorItemsList };
};
export default useRoadItemGetItems;