diff --git a/src/components/home/index.jsx b/src/components/home/index.jsx index b059e6a..f919b3d 100644 --- a/src/components/home/index.jsx +++ b/src/components/home/index.jsx @@ -73,7 +73,6 @@ function HomeComponent() { "contains", "lessThan", "greaterThan", - "between", ], }, diff --git a/src/core/components/DataTable/filter/TextFieldWithFnBox/FilterBox.jsx b/src/core/components/DataTable/filter/TextFieldWithFnBox/FilterBox.jsx index f887918..25f10c6 100644 --- a/src/core/components/DataTable/filter/TextFieldWithFnBox/FilterBox.jsx +++ b/src/core/components/DataTable/filter/TextFieldWithFnBox/FilterBox.jsx @@ -1,6 +1,17 @@ -import { Popper, Paper, List, ListItem, ListItemText, ClickAwayListener } from '@mui/material'; +import {ClickAwayListener, List, ListItem, ListItemText, Paper, Popper} from '@mui/material'; -function FilterBox({anchorEl , open = false, handleClose = () => {} , columnFilterModeOptions , onSelectFilter , defaultFilter}) { +const columnFilterModeOptionFa = { + equals: "برابر", + notEquals: "نابرابر", + contains: "شامل", + lessThan: "کوچکتر", + greaterThan: "بزرگتر", +} + +function FilterBox({ + anchorEl, open = false, handleClose = () => { + }, columnFilterModeOptions, onSelectFilter, defaultFilter + }) { const id = open ? 'simple-popper' : undefined; const handleSelectFilter = (filterFn) => { @@ -10,13 +21,14 @@ function FilterBox({anchorEl , open = false, handleClose = () => {} , columnFilt return (
- + {columnFilterModeOptions.map((option, index) => ( - handleSelectFilter(option)} selected={option === defaultFilter} sx={{ cursor: 'pointer' }}> - + handleSelectFilter(option)} + selected={option === defaultFilter} sx={{cursor: 'pointer'}}> + ))} diff --git a/src/core/components/DataTable/head/TableHeadRow.js b/src/core/components/DataTable/head/TableHeadRow.js index 8c2202a..33a23e2 100644 --- a/src/core/components/DataTable/head/TableHeadRow.js +++ b/src/core/components/DataTable/head/TableHeadRow.js @@ -19,7 +19,7 @@ const DataTable_TableHeadRow = ({ const {virtualColumns, virtualPaddingLeft, virtualPaddingRight} = columnVirtualizer ?? {}; - const backgroundColor = index % 2 === 0 ? '#2070af' : '#ff5c0f'; + const backgroundColor = index % 2 === 0 ? '#015688' : '#ff5c0f'; const tableRowProps = { ...parseFromValuesOrFunc(muiTableHeadRowProps, { diff --git a/src/core/components/DataTable/refactor/RefactorTable.jsx b/src/core/components/DataTable/refactor/RefactorTable.jsx new file mode 100644 index 0000000..06f75c1 --- /dev/null +++ b/src/core/components/DataTable/refactor/RefactorTable.jsx @@ -0,0 +1,28 @@ +"use client" +import {IconButton, Tooltip} from '@mui/material'; +import RestartAltIcon from '@mui/icons-material/RestartAlt'; +import useTableSetting from "@/lib/hooks/useTableSetting"; +import {useState} from "react"; + +function RefactorTable() { + const {refactorAction} = useTableSetting(); + const [userId, setUserId] = useState(2); + const [pageName, setPageName] = useState('loan'); + const [tableName, setTableName] = useState('loan_table'); + + const refactor = () => { + refactorAction(userId, pageName, tableName); + }; + + return ( + + + + + + ); +} + +export default RefactorTable; + + diff --git a/src/core/components/DataTable/toolbar/TopToolbar.js b/src/core/components/DataTable/toolbar/TopToolbar.js index 46bae3e..2b9641c 100644 --- a/src/core/components/DataTable/toolbar/TopToolbar.js +++ b/src/core/components/DataTable/toolbar/TopToolbar.js @@ -4,6 +4,7 @@ import DataTable_LinearProgressBar from "./LinearProgressBar"; import DataTable_TablePagination from "./TablePagination"; import DataTable_ToolbarInternalButtons from "./ToolbarInternalButtons"; import FilterColumn from "@/core/components/DataTable/filter/FilterColumn"; +import RefactorTable from "@/core/components/DataTable/refactor/RefactorTable"; const DataTable_TopToolbar = ({table, columns}) => { const { @@ -71,6 +72,7 @@ const DataTable_TopToolbar = ({table, columns}) => { justifyContent: 'flex-end', }} > + diff --git a/src/lib/contexts/tableSetting.jsx b/src/lib/contexts/tableSetting.jsx index 0c2262d..abc2ad7 100644 --- a/src/lib/contexts/tableSetting.jsx +++ b/src/lib/contexts/tableSetting.jsx @@ -1,6 +1,5 @@ 'use client' import {createContext, useCallback, useEffect, useState} from "react"; -import {flattenArrayOfObjects} from "@/core/utils/flattenArrayOfObjects"; export const TableSettingContext = createContext(); export const TableSettingProvider = ({children}) => { @@ -53,7 +52,23 @@ export const TableSettingProvider = ({children}) => { localStorage.setItem("_setting-app", JSON.stringify(updatedLocalStorage)); setSettingStore(updatedLocalStorage); } - + const refactorAction = (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 refactorData = { + ...prevLocalStorage, + [user_id]: { + ...userSettings, + [page_name]: { + ...pageSettings, + [table_name]: {}, + }, + }, + }; + localStorage.setItem("_setting-app", JSON.stringify(refactorData)); + setSettingStore(refactorData); + } const SummaryTextMessage = (values, columns) => { let SummaryText = ""; let HideText = ""; @@ -122,7 +137,7 @@ export const TableSettingProvider = ({children}) => { return ( + value={{settingStore, hideAction, sortAction, filterAction, refactorAction}}> {children} ); diff --git a/src/lib/hooks/useTableSetting.jsx b/src/lib/hooks/useTableSetting.jsx index 14d9d4e..7617655 100644 --- a/src/lib/hooks/useTableSetting.jsx +++ b/src/lib/hooks/useTableSetting.jsx @@ -1,10 +1,10 @@ -import { useContext } from "react"; -import { TableSettingContext } from "../contexts/tableSetting"; +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, refactorAction} = + useContext(TableSettingContext); + return {settingStore, hideAction, sortAction, filterAction, refactorAction}; }; export default useTableSetting;