diff --git a/src/core/components/DataTable/reset/ResetStorage.jsx b/src/core/components/DataTable/reset/ResetStorage.jsx
new file mode 100644
index 0000000..6d8a534
--- /dev/null
+++ b/src/core/components/DataTable/reset/ResetStorage.jsx
@@ -0,0 +1,22 @@
+"use client";
+
+import { IconButton, Tooltip } from "@mui/material";
+import AutorenewIcon from "@mui/icons-material/Autorenew";
+import useTableSetting from "@/lib/hooks/useTableSetting";
+
+function ResetStorage({ user_id, page_name, table_name }) {
+ const { resetAction } = useTableSetting();
+ const reset = () => {
+ resetAction(user_id, page_name, table_name);
+ };
+
+ return (
+
+
+
+
+
+ );
+}
+
+export default ResetStorage;
\ No newline at end of file
diff --git a/src/core/components/DataTable/toolbar/TopToolbar.js b/src/core/components/DataTable/toolbar/TopToolbar.js
index 88ad219..09836e2 100644
--- a/src/core/components/DataTable/toolbar/TopToolbar.js
+++ b/src/core/components/DataTable/toolbar/TopToolbar.js
@@ -4,7 +4,8 @@ import DataTable_LinearProgressBar from "./LinearProgressBar";
import DataTable_TablePagination from "./TablePagination";
import DataTable_ToolbarInternalButtons from "./ToolbarInternalButtons";
import FilterColumn from "@/core/components/DataTable/filter";
-import RefactorTable from "@/core/components/DataTable/refactor/RefactorTable";
+import UpdateTable from "@/core/components/DataTable/update/UpdateTable";
+import ResetStorage from "@/core/components/DataTable/reset/ResetStorage";
const DataTable_TopToolbar = ({ mutate, need_filter, table, columns, table_url, user_id, page_name, table_name }) => {
const {
@@ -69,7 +70,10 @@ const DataTable_TopToolbar = ({ mutate, need_filter, table, columns, table_url,
justifyContent: "flex-end",
}}
>
-
+
+
{need_filter && (
{
+function UpdateTable({ mutate }) {
+ const update = () => {
mutate();
};
return (
-
-
+
+
);
}
-export default RefactorTable;
+export default UpdateTable;
diff --git a/src/lib/contexts/tableSetting.js b/src/lib/contexts/tableSetting.js
index b5b63d9..bef09c8 100644
--- a/src/lib/contexts/tableSetting.js
+++ b/src/lib/contexts/tableSetting.js
@@ -21,6 +21,23 @@ export const TableSettingProvider = ({ children }) => {
const filterAction = (user_id, page_name, table_name, settingValue, columns) => {
updateSettingStorage(user_id, page_name, table_name, "filters", settingValue, columns);
};
+ const resetAction = (user_id, page_name, table_name) => {
+ const prevLocalStorage = JSON.parse(localStorage.getItem("_setting-app")) || {};
+ const userSettings = prevLocalStorage[user_id] || {};
+ const pageSettings = userSettings[page_name] || {};
+ const resetData = {
+ ...prevLocalStorage,
+ [user_id]: {
+ ...userSettings,
+ [page_name]: {
+ ...pageSettings,
+ [table_name]: {},
+ },
+ },
+ };
+ localStorage.setItem("_setting-app", JSON.stringify(resetData));
+ setSettingStore(resetData);
+ };
const updateSettingStorage = (user_id, page_name, table_name, settingType, settingValue, columns) => {
const prevLocalStorage = JSON.parse(localStorage.getItem("_setting-app")) || {};
const userSettings = prevLocalStorage[user_id] || {};
@@ -46,7 +63,7 @@ export const TableSettingProvider = ({ children }) => {
...tableSettings,
[settingType]: Array.isArray(settingValue) ? [...newSettings] : { ...newSettings },
},
- columns
+ columns,
),
},
},
@@ -117,7 +134,7 @@ export const TableSettingProvider = ({ children }) => {
};
return (
-
+
{children}
);
diff --git a/src/lib/hooks/useTableSetting.js b/src/lib/hooks/useTableSetting.js
index e9e6cef..c841ffc 100644
--- a/src/lib/hooks/useTableSetting.js
+++ b/src/lib/hooks/useTableSetting.js
@@ -2,8 +2,8 @@ import { useContext } from "react";
import { TableSettingContext } from "../contexts/tableSetting";
const useTableSetting = () => {
- const { settingStore, hideAction, sortAction, filterAction } = useContext(TableSettingContext);
- return { settingStore, hideAction, sortAction, filterAction };
+ const { settingStore, hideAction, sortAction, filterAction, resetAction } = useContext(TableSettingContext);
+ return { settingStore, hideAction, sortAction, filterAction, resetAction };
};
export default useTableSetting;