diff --git a/src/components/dashboard/admin-setting/Form/DeleteForm.jsx b/src/components/dashboard/admin-setting/Form/DeleteForm.jsx new file mode 100644 index 0000000..b2fdead --- /dev/null +++ b/src/components/dashboard/admin-setting/Form/DeleteForm.jsx @@ -0,0 +1,67 @@ +import {useTranslations} from "next-intl"; +import {useState} from "react"; +import { + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + IconButton, + Tooltip, + Typography +} from "@mui/material"; +import DeleteIcon from '@mui/icons-material/Delete'; +import {DELETE_ADMIN_SETTING} from "@/core/data/apiRoutes"; +import useRequest from "@/lib/app/hooks/useRequest"; +import useNotification from "@/lib/app/hooks/useNotification"; + +const Delete = ({rowId, mutate}) => { + const t = useTranslations(); + const [openConfirmDialog, setOpenConfirmDialog] = useState(false); + const [isSubmitting, setIsSubmitting] = useState(false) + const requestServer = useRequest({auth: true}) + const {update_notification} = useNotification() + const handleSubmit = () => { + setIsSubmitting(true) + requestServer(`${DELETE_ADMIN_SETTING}/${rowId}`, 'delete').then((response) => { + mutate() + update_notification() + }).catch(() => { + }).finally(() => { + setIsSubmitting(false) + }); + } + + return ( + <> + + { + setOpenConfirmDialog(true) + }} + > + + + + + {t("DeleteDialog.delete")} + + {t("DeleteDialog.typography")} + + + + + + + + ); +}; +export default Delete; \ No newline at end of file diff --git a/src/components/dashboard/admin-setting/TableRowActions.jsx b/src/components/dashboard/admin-setting/TableRowActions.jsx index 64fb696..6bdd0fe 100644 --- a/src/components/dashboard/admin-setting/TableRowActions.jsx +++ b/src/components/dashboard/admin-setting/TableRowActions.jsx @@ -1,5 +1,6 @@ import {Box} from "@mui/material"; import Update from "src/components/dashboard/admin-setting/Form/UpdateForm"; +import Delete from "@/components/dashboard/admin-setting/Form/DeleteForm"; const TableRow = ({row, mutate}) => { return ( @@ -8,6 +9,10 @@ const TableRow = ({row, mutate}) => { row={row} mutate={mutate} /> + ); }; diff --git a/src/components/dashboard/admin-setting/index.jsx b/src/components/dashboard/admin-setting/index.jsx index 0a3833e..6490595 100644 --- a/src/components/dashboard/admin-setting/index.jsx +++ b/src/components/dashboard/admin-setting/index.jsx @@ -15,8 +15,8 @@ function DashboardAdminSettingComponent() { id: "id", header: t("AdminSetting.id"), enableColumnFilter: true, - datatype: "text", - filterFn: "contains", + datatype: "number", + filterFn: "equals", columnFilterModeOptions: ["contains", "equals", "notEquals"], Cell: ({renderedCellValue}) => ( {renderedCellValue} @@ -29,7 +29,7 @@ function DashboardAdminSettingComponent() { enableColumnFilter: true, datatype: "text", filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], + columnFilterModeOptions: ["contains", "equals"], Cell: ({renderedCellValue}) => ( {renderedCellValue} ), @@ -52,19 +52,9 @@ function DashboardAdminSettingComponent() { ], [] ); - const data = [{ - id: 1, - name: "amin", - value: "hi" - }, { - id: 1, - name: "amin", - value: "hi" - }] return ( , selected: false, - permissions: ["manage_roles"], + permissions: ["view_settings"], } ], ]; diff --git a/src/pages/dashboard/admin-setting/index.jsx b/src/pages/dashboard/admin-setting/index.jsx index 042e599..70dc722 100644 --- a/src/pages/dashboard/admin-setting/index.jsx +++ b/src/pages/dashboard/admin-setting/index.jsx @@ -15,7 +15,7 @@ export async function getServerSideProps({req, locale}) { title: "Dashboard.admin_setting", isBot, locale, - layout: {name: 'DashboardLayout'} + layout: {name: 'DashboardLayout', props: {permissions: ["view_settings"]}} }, }; }