From 83dad6f040a13e446053b403cf9b125a315c0169 Mon Sep 17 00:00:00 2001 From: Mohammad Jalali Date: Sat, 15 Jul 2023 16:26:35 +0330 Subject: [PATCH] debug datatable structure --- public/locales/fa/app.json | 12 ++ .../passenger-office/Form/ConfirmForm.jsx | 8 +- .../passenger-office/Form/RejectForm.jsx | 13 +- .../passenger-office/TableRowActions.jsx | 44 ++--- src/core/components/DatatableStructure.jsx | 2 +- src/lib/app/hooks/useDatatable.jsx | 154 ++++++------------ 6 files changed, 97 insertions(+), 136 deletions(-) diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index 9d1409c..d263ce5 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -99,5 +99,17 @@ "navgan_id": "کد ناوگان", "vehicle_type": "نوع ماشین", "state_name": "وضعیت درخواست" + }, + "ConfirmDialog": { + "confirm": "تایید", + "context": "آیا از تایید این آیتم اطمینان دارید", + "button-confirm": "تایید", + "button-cancel": "بستن" + }, + "RejectDialog": { + "reject": "عدم تایید", + "context": "آیا از عدم تایید این آیتم اطمینان دارید", + "button-reject": "عدم تایید", + "button-cancel": "بستن" } } diff --git a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx index 5fd3f3b..f5adf2f 100644 --- a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx +++ b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx @@ -21,16 +21,16 @@ const ConfirmForm = ({ }; return ( - {t("delete-dialog.confirm")} + {t("ConfirmDialog.confirm")} - {t("delete-dialog.context")} + {t("ConfirmDialog.context")} diff --git a/src/components/dashboard/passenger-office/Form/RejectForm.jsx b/src/components/dashboard/passenger-office/Form/RejectForm.jsx index cf551a8..75a0e4e 100644 --- a/src/components/dashboard/passenger-office/Form/RejectForm.jsx +++ b/src/components/dashboard/passenger-office/Form/RejectForm.jsx @@ -10,21 +10,22 @@ import { useTranslations } from "next-intl"; const RejectForm = ({ open, handleClose, handleDelete, rowId, deleteData }) => { const t = useTranslations(); - const handleDeleteExpert = () => { + const handleRejectRequest = () => { handleDelete(); }; + console.log(rowId); return ( - {t("delete-dialog.confirm")} + {t("RejectDialog.reject")} - {t("delete-dialog.context")} + {t("RejectDialog.context")} - diff --git a/src/components/dashboard/passenger-office/TableRowActions.jsx b/src/components/dashboard/passenger-office/TableRowActions.jsx index 832e77e..5aefae7 100644 --- a/src/components/dashboard/passenger-office/TableRowActions.jsx +++ b/src/components/dashboard/passenger-office/TableRowActions.jsx @@ -9,36 +9,40 @@ import RejectForm from "./Form/RejectForm"; // import DeleteForm from "./Form/DeleteForm"; const TableRowActions = ({ row }) => { - // const { - // openDeleteDialog, - // handleOpenDeleteDialog, - // handleCloseDeleteDialog, - // handleDeleteDialog, - // rowId, - // deleteData, - // } = useContext(DataTableContext); + const { + openConfirmDialog, + openRejectDialog, + handleOpenConfirmDialog, + handleOpenRejectDialog, + handleCloseConfirmDialog, + handleCloseRejectDialog, + handleConfirmDialog, + handleRejectDialog, + rowId, + deleteData, + } = useContext(DataTableContext); return ( - handleOpenDeleteDialog(row)}> + handleOpenConfirmDialog(row)}> - {/* */} - handleOpenDeleteDialog(row)}> + /> + handleOpenRejectDialog(row)}> - {/* */} + /> ); }; diff --git a/src/core/components/DatatableStructure.jsx b/src/core/components/DatatableStructure.jsx index e13ed16..e033a09 100644 --- a/src/core/components/DatatableStructure.jsx +++ b/src/core/components/DatatableStructure.jsx @@ -1,4 +1,4 @@ -import { DataTableProvider } from "@/lib/app/contexts/DatatableContext"; +import { DataTableProvider } from "@/lib/app/contexts/DataTableContext"; import DataTable from "./Datatable"; import { ReloadDataTableProvider } from "@/lib/app/contexts/ReloadDatatableContext"; diff --git a/src/lib/app/hooks/useDatatable.jsx b/src/lib/app/hooks/useDatatable.jsx index 71d0b9d..6b0789a 100644 --- a/src/lib/app/hooks/useDatatable.jsx +++ b/src/lib/app/hooks/useDatatable.jsx @@ -1,46 +1,28 @@ -import { useMediaQuery } from "@mui/material"; -import { useTheme } from "@mui/material/styles"; -import { useState, useReducer, useCallback, useContext } from "react"; import axios from "axios"; -import ImageResizer from "@/core/components/ImageConvertor"; +import { useCallback, useContext, useReducer, useState } from "react"; +import { ReloadDataTableContext } from "../contexts/ReloadDatatableContext"; import useUser from "./useUser"; -// import { ReloadDataTableContext } from "../contexts/ReloadDatatableContext"; const initialValues = { url: "", rowID: "", values: {}, - image: { - key: "", - value: {}, - }, }; const reducer = (state, action) => { switch (action.type) { - case "ADD_DATA": + case "CONFIRM_DATA": return { ...state, url: action.url, - values: action.values, - image: action.image, - rowID: "", - }; - case "EDIT_DATA": - return { - ...state, - url: action.url, - values: action.values, rowID: action.rowID, - image: action.image, }; - case "DELETE_DATA": + case "REJECT_DATA": return { ...state, url: action.url, rowID: action.rowID, values: {}, - image: {}, }; default: return state; @@ -48,120 +30,82 @@ const reducer = (state, action) => { }; const useDataTable = () => { - // const { setReloadDataTable } = useContext(ReloadDataTableContext); + const { setReloadDataTable } = useContext(ReloadDataTableContext); const [state, dispatch] = useReducer(reducer, initialValues); - const [drawerContent, setDrawerContent] = useState(null); - const [openDeleteDialog, setOpenDeleteDialog] = useState(false); + const [openConfirmDialog, setOpenConfirmDialog] = useState(false); + const [openRejectDialog, setOpenRejectDialog] = useState(false); const [rowId, setRowId] = useState(null); - const theme = useTheme(); + const { token } = useUser(); - const drawerDirection = useMediaQuery(theme.breakpoints.up("sm")) - ? "right" - : "bottom"; - const [sweepableDrawer, setSweepableDrawer] = useState({ - bottom: false, - right: false, - }); - - const addData = useCallback(async (url, values, image) => { - dispatch({ type: "ADD_DATA", url: url, values: values, image: image }); - if (image != null) { - var resizedAvatar = await ImageResizer(image.value); - formData.append(image.key, resizedAvatar); - axios.post(url, formData, { - headers: { - authorization: `Bearer ${token}`, - "Content-Type": "multipart/form-data", - }, - }); - } + const confirmData = useCallback(async (url, rowID) => { + dispatch({ type: "CONFIRM_DATA", url: url, rowID: rowID }); axios - .post(url, values, { - headers: { - authorization: `Bearer ${token}`, - }, - }) - .then(() => {}) - .catch(() => {}); - }, []); - - const deleteData = useCallback(async (url, rowID) => { - dispatch({ type: "DELETE_DATA", url: url, rowID: rowID }); - axios - .delete(`${url}/${rowID}`, { + .post(`${url}/${rowID}`, { headers: { authorization: `Bearer ${token}`, }, }) .then(() => { - // setReloadDataTable(true); + setReloadDataTable(true); }) .catch(() => {}); }, []); - const editData = useCallback(async (url, values, rowID, image) => { - dispatch({ - type: "EDIT_DATA", - url: url, - values: values, - rowID: rowID, - image: image, - }); - if (image != null) { - var resizedAvatar = await ImageResizer(image.value); - formData.append(image.key, resizedAvatar); - axios.post(`${url}/${rowID}`, formData, { - headers: { - authorization: `Bearer ${token}`, - "Content-Type": "multipart/form-data", - }, - }); - } + const rejectData = useCallback(async (url, rowID) => { + dispatch({ type: "REJECT_DATA", url: url, rowID: rowID }); axios - .post(`${url}/${rowID}`, values, { + .post(`${url}/${rowID}`, { headers: { authorization: `Bearer ${token}`, }, }) - .then(() => {}) + .then(() => { + setReloadDataTable(true); + }) .catch(() => {}); }, []); - const toggleDrawer = (open) => { - open == false && - setTimeout(() => { - setDrawerContent(null); - }, theme.transitions.duration.leavingScreen); - setSweepableDrawer({ ...sweepableDrawer, [drawerDirection]: open }); - }; - const handleOpenDeleteDialog = (row) => { + const handleOpenConfirmDialog = (row) => { setRowId(row.getValue("id")); - setOpenDeleteDialog(true); + setOpenConfirmDialog(true); }; - const handleCloseDeleteDialog = () => { - setOpenDeleteDialog(false); + const handleCloseConfirmDialog = () => { + setOpenConfirmDialog(false); }; - const handleDeleteDialog = () => { - setOpenDeleteDialog(false); + const handleConfirmDialog = () => { + setOpenConfirmDialog(false); }; + // Reject Data + const handleOpenRejectDialog = (row) => { + setRowId(row.getValue("id")); + setOpenRejectDialog(true); + }; + + const handleCloseRejectDialog = () => { + setOpenRejectDialog(false); + }; + + const handleRejectDialog = () => { + setOpenRejectDialog(false); + }; + // End Reject Data + const contextValue = { - toggleDrawer, - drawerDirection, - sweepableDrawer, - setSweepableDrawer, - setDrawerContent, - drawerContent, - openDeleteDialog, - handleOpenDeleteDialog, - handleCloseDeleteDialog, - handleDeleteDialog, + handleOpenConfirmDialog, + handleCloseConfirmDialog, + handleConfirmDialog, + handleOpenRejectDialog, + handleCloseRejectDialog, + handleRejectDialog, rowId, - deleteData, - addData, + openConfirmDialog, + openRejectDialog, + rejectData, + confirmData, }; return contextValue; };