From e7ad977ede10a61327300ad9ca9aea234be7fed0 Mon Sep 17 00:00:00 2001 From: AminGhasempoor Date: Sun, 18 Feb 2024 14:42:45 +0330 Subject: [PATCH] useCallback --- src/components/DataTableTest.jsx | 32 ++++++++++++++++--------------- src/lib/contexts/tableSetting.jsx | 16 +++++++--------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/components/DataTableTest.jsx b/src/components/DataTableTest.jsx index e8d655d..4daf803 100644 --- a/src/components/DataTableTest.jsx +++ b/src/components/DataTableTest.jsx @@ -56,7 +56,8 @@ const TestDataTable = () => { const [userId, setUserId] = useState(2); const [pageName, setPageName] = useState('loan'); const [tableName, setTableName] = useState('loan_table'); - const {settingStore, hideAction, filterAction, sortAction} = useTableSetting(); + const {settingStore, hideAction, filterAction, sortAction, oldSorting} = useTableSetting(); + console.log(settingStore) const columns = useMemo( () => [ @@ -142,23 +143,24 @@ const TestDataTable = () => { hideAction(userId, pageName, tableName, settingValue); }; const onSortingChange = (event) => { - const settingValue = event(); + const settingValue = event(settingStore?.[userId]?.[pageName]?.[tableName]?.['sorts'] || []); sortAction(userId, pageName, tableName, settingValue); } - return ; }; diff --git a/src/lib/contexts/tableSetting.jsx b/src/lib/contexts/tableSetting.jsx index 520bff5..ac5ba6d 100644 --- a/src/lib/contexts/tableSetting.jsx +++ b/src/lib/contexts/tableSetting.jsx @@ -1,24 +1,22 @@ 'use client' - -import {createContext, useEffect, useState} from "react"; - +import {createContext, useCallback, useEffect, useState} from "react"; export const TableSettingContext = createContext(); - export const TableSettingProvider = ({children}) => { const [settingStore, setSettingStore] = useState({}); useEffect(() => { const _localStorage = localStorage.getItem("_setting-app") - if (_localStorage) + if (_localStorage) { setSettingStore(JSON.parse(_localStorage)) + } }, []); - const hideAction = (user_id, page_name, table_name, settingValue) => { + const hideAction = useCallback((user_id, page_name, table_name, settingValue) => { updateSettingStorage(user_id, page_name, table_name, "hides", settingValue); - } - const sortAction = (user_id, page_name, table_name, settingValue) => { + },[]) + const sortAction = useCallback((user_id, page_name, table_name, settingValue) => { updateSettingStorage(user_id, page_name, table_name, "sorts", settingValue); - } + },[]) const filterAction = (user_id, page_name, table_name, settingValue) => { updateSettingStorage(user_id, page_name, table_name, "filters", settingValue); }