resolve toast bug and complete request part and sorting data

This commit is contained in:
2024-07-13 14:42:27 +03:30
parent ad78972337
commit 4dba3f445f
5 changed files with 29 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
import cacheProviderRtl from "@/core/utils/cacheRtl"; import cacheProviderRtl from "@/core/utils/cacheRtl";
import { CssBaseline, ThemeProvider } from "@mui/material"; import { CssBaseline, GlobalStyles, ThemeProvider } from "@mui/material";
import theme from "@/core/utils/theme"; import theme from "@/core/utils/theme";
import { AppRouterCacheProvider } from "@mui/material-nextjs/v14-appRouter"; import { AppRouterCacheProvider } from "@mui/material-nextjs/v14-appRouter";
import "^/global.scss"; import "^/global.scss";
@@ -9,6 +9,21 @@ const Template = ({ children }) => {
return ( return (
<AppRouterCacheProvider CacheProvider={cacheProviderRtl} options={{ enableCssLayer: true }}> <AppRouterCacheProvider CacheProvider={cacheProviderRtl} options={{ enableCssLayer: true }}>
<ThemeProvider theme={theme}> <ThemeProvider theme={theme}>
<GlobalStyles
styles={{
"&::-webkit-scrollbar": {
width: "5px",
},
"&::-webkit-scrollbar-track": {
boxShadow: "inset 0 0 5px #fff",
borderRadius: "5px",
},
"&::-webkit-scrollbar-thumb": {
background: "#155175",
borderRadius: "5px",
},
}}
/>
<CssBaseline /> <CssBaseline />
{children} {children}
<ToastContainer rtl containerId="filtering" closeButton={false} /> <ToastContainer rtl containerId="filtering" closeButton={false} />

View File

@@ -1,6 +1,7 @@
import { Button } from "@mui/material"; import { Button } from "@mui/material";
import AddCircleIcon from "@mui/icons-material/AddCircle"; import AddCircleIcon from "@mui/icons-material/AddCircle";
import { useState } from "react"; import { useState } from "react";
import InquiryPrivacyFencingCreate from "@/components/dashboard/inquiryPrivacyFencing/Create";
const Toolbar = ({ mutate }) => { const Toolbar = ({ mutate }) => {
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
@@ -9,11 +10,16 @@ const Toolbar = ({ mutate }) => {
setOpen(true); setOpen(true);
}; };
const handleClose = () => {
setOpen(false);
};
return ( return (
<> <>
<Button variant="contained" color="primary2" startIcon={<AddCircleIcon />} onClick={handleOpen}> <Button variant="contained" color="primary2" startIcon={<AddCircleIcon />} onClick={handleOpen}>
ایجاد پاسخ به استعلام ایجاد پاسخ به استعلام
</Button> </Button>
<InquiryPrivacyFencingCreate open={open} handleClose={handleClose} mutate={mutate} />
</> </>
); );
}; };

View File

@@ -352,8 +352,8 @@ const InquiryPrivacyFencingPage = () => {
columns={columns} columns={columns}
table_url={GET_INQUIRY_PRIVACY_FENCING_ROUTE} table_url={GET_INQUIRY_PRIVACY_FENCING_ROUTE}
user_id={0} user_id={0}
page_name={"testPage"} page_name={"inquiryPrivacyFencing"}
table_name={"testTable"} table_name={"inquiryPrivacyFencingList"}
TableToolbar={Toolbar} TableToolbar={Toolbar}
/> />
</Box> </Box>

View File

@@ -33,7 +33,7 @@ const DataTable_Main = (props) => {
params.set("filters", JSON.stringify(isEmptyObject(filterData) ? [] : [filterData])); params.set("filters", JSON.stringify(isEmptyObject(filterData) ? [] : [filterData]));
params.set("sorting", JSON.stringify(sortData)); params.set("sorting", JSON.stringify(sortData));
return `${table_url}?${params}`; return `${table_url}?${params}`;
}, [table_url, filterData, pagination, columns]); }, [table_url, filterData, pagination, columns, sortData]);
const fetcher = async (url) => { const fetcher = async (url) => {
try { try {

View File

@@ -1,8 +1,8 @@
import { createContext, useEffect, useState } from "react"; import { createContext, useEffect, useState } from "react";
import { toast } from "react-toastify"; import { toast } from "react-toastify";
import AskForKeepData from "@/core/components/NotificationDesign/AskForKeepData";
import useTableSetting from "@/lib/hooks/useTableSetting"; import useTableSetting from "@/lib/hooks/useTableSetting";
import { flattenArrayOfObjects } from "@/core/utils/flattenArrayOfObjects"; import { flattenArrayOfObjects } from "@/core/utils/flattenArrayOfObjects";
import AskForKeepData from "@/core/components/NotificationDesign/AskForKeepData";
export const DataTableContext = createContext(); export const DataTableContext = createContext();
@@ -58,7 +58,7 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns }
JSON.stringify(initFilter) !== JSON.stringify(filterData) || JSON.stringify(initFilter) !== JSON.stringify(filterData) ||
JSON.stringify(initSort) !== JSON.stringify(sortData) JSON.stringify(initSort) !== JSON.stringify(sortData)
) { ) {
if (!toast.isActive("keep_data", "datatable")) { if (!toast.isActive("keep_data", "filtering")) {
toast( toast(
<AskForKeepData <AskForKeepData
filterData={filterData} filterData={filterData}
@@ -69,7 +69,7 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns }
columns={flatColumns} columns={flatColumns}
/>, />,
{ {
containerId: "datatable", containerId: "filtering",
toastId: "keep_data", toastId: "keep_data",
className: "filter-toast", className: "filter-toast",
position: "bottom-left", position: "bottom-left",
@@ -79,7 +79,7 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns }
); );
} else { } else {
toast.update("keep_data", { toast.update("keep_data", {
containerId: "datatable", containerId: "filtering",
toastId: "keep_data", toastId: "keep_data",
render: ( render: (
<AskForKeepData <AskForKeepData