complete hide action part with button for hide or show all table header

This commit is contained in:
2024-07-27 11:32:27 +03:30
parent d3bc855f39
commit f974363790
9 changed files with 239 additions and 57 deletions

View File

@@ -56,12 +56,23 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns }
}, [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;
}, {});
const getHideValues = (columns) => {
return columns.reduce((acc, column) => {
const columnId = column.id;
const storeHide = settingStore?.[user_id]?.[page_name]?.[table_name]?.["hides"]?.[columnId];
// If the column has nested columns, process them recursively
if (column.columns && column.columns.length > 0) {
acc[columnId] = getHideValues(column.columns);
} else {
acc[columnId] = storeHide !== undefined ? storeHide : true;
}
return acc;
}, {});
};
const hideValues = getHideValues(columns);
setHideData(hideValues);
setInitHide(hideValues);
}, [settingStore, isInitStates]);