make hide action of datatable own
This commit is contained in:
@@ -19,44 +19,53 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns }
|
||||
|
||||
useEffect(() => {
|
||||
if (!settingStore) return;
|
||||
const values = flatColumns.reduce((acc, column) => {
|
||||
const filterValues = flatColumns.reduce((acc, column) => {
|
||||
if (!column.enableColumnFilter) return acc;
|
||||
const filter = settingStore?.[user_id]?.[page_name]?.[table_name]?.["filters"]?.find(
|
||||
const storeFilter = settingStore?.[user_id]?.[page_name]?.[table_name]?.["filters"]?.find(
|
||||
(filter) => filter.id === column.id,
|
||||
);
|
||||
if (column.datatype === "array") {
|
||||
acc[column.id] = {
|
||||
id: column.id,
|
||||
value: filter?.value || [],
|
||||
filterFn: filter?.filterFn || column._filterFn,
|
||||
value: storeFilter?.value || [],
|
||||
filterFn: storeFilter?.filterFn || column._filterFn,
|
||||
datatype: column.datatype,
|
||||
};
|
||||
} else if (column._filterFn === "between") {
|
||||
acc[column.id] = {
|
||||
id: column.id,
|
||||
value: filter?.value || ["", ""],
|
||||
filterFn: filter?.filterFn || column._filterFn,
|
||||
value: storeFilter?.value || ["", ""],
|
||||
filterFn: storeFilter?.filterFn || column._filterFn,
|
||||
datatype: column.datatype,
|
||||
};
|
||||
} else {
|
||||
acc[column.id] = {
|
||||
id: column.id,
|
||||
value: filter?.value || "",
|
||||
filterFn: filter?.filterFn || column._filterFn,
|
||||
value: storeFilter?.value || "",
|
||||
filterFn: storeFilter?.filterFn || column._filterFn,
|
||||
datatype: column.datatype,
|
||||
};
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
setFilterData(values);
|
||||
setInitFilter(values);
|
||||
setFilterData(filterValues);
|
||||
setInitFilter(filterValues);
|
||||
setSortData(settingStore?.[user_id]?.[page_name]?.[table_name]?.["sorts"] || []);
|
||||
setInitSort(settingStore?.[user_id]?.[page_name]?.[table_name]?.["sorts"] || []);
|
||||
setHideData(settingStore?.[user_id]?.[page_name]?.[table_name]?.["hides"] || {});
|
||||
setInitHide(settingStore?.[user_id]?.[page_name]?.[table_name]?.["hides"] || {});
|
||||
setInitStates(true);
|
||||
}, [settingStore, isInitStates]);
|
||||
|
||||
useEffect(() => {
|
||||
const hideValues = flatColumns.reduce((acc, column) => {
|
||||
const columnId = column.id;
|
||||
const storeHide = settingStore?.[user_id]?.[page_name]?.[table_name]?.["hides"]?.[columnId];
|
||||
acc[columnId] = storeHide !== undefined ? storeHide : true;
|
||||
return acc;
|
||||
}, {});
|
||||
setHideData(hideValues);
|
||||
setInitHide(hideValues);
|
||||
}, [settingStore, isInitStates]);
|
||||
|
||||
useEffect(() => {
|
||||
if (
|
||||
JSON.stringify(initFilter) !== JSON.stringify(filterData) ||
|
||||
|
||||
Reference in New Issue
Block a user