From d297fc6ab24ed0d3936520145ac84c9a63f6c806 Mon Sep 17 00:00:00 2001 From: Tb Fajri Date: Tue, 21 Jan 2025 15:39:28 +0700 Subject: [PATCH] update --- .../src/pages/Corporates/Member/List.tsx | 24 +++- .../Member/sections/DialogDeleteMember.tsx | 132 ++++++++++++++++++ 2 files changed, 154 insertions(+), 2 deletions(-) create mode 100755 frontend/dashboard/src/pages/Corporates/Member/sections/DialogDeleteMember.tsx diff --git a/frontend/dashboard/src/pages/Corporates/Member/List.tsx b/frontend/dashboard/src/pages/Corporates/Member/List.tsx index 3e9ec04c..c142b35e 100755 --- a/frontend/dashboard/src/pages/Corporates/Member/List.tsx +++ b/frontend/dashboard/src/pages/Corporates/Member/List.tsx @@ -63,7 +63,8 @@ import { Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material import CloseIcon from '@mui/icons-material/Close'; import Label from '../../../components/Label'; import DialogEditMember from './sections/DialogEditMember'; -import { Edit } from '@mui/icons-material'; +import { Delete, Edit } from '@mui/icons-material'; +import DialogDeleteMember from './sections/DialogDeleteMember'; export default function CorporatePlanList({handleSubmitSuccess}) { const navigate = useNavigate(); @@ -153,6 +154,9 @@ export default function CorporatePlanList({handleSubmitSuccess}) { setSearchParams(filter); }; + const [idMember, setIdMember] = useState(); + const [openDialogDeleteMember, setDialogDeleteMember] = useState(false) + useEffect(() => { loadDataTableData(); }, []); @@ -580,6 +584,14 @@ export default function CorporatePlanList({handleSubmitSuccess}) { History + { + setIdMember(row.id) + setDialogDeleteMember(true) + }} + > + + Delete + } /> @@ -922,8 +934,16 @@ export default function CorporatePlanList({handleSubmitSuccess}) { setOpenDialog = {setOpenDialogUpdate} member = {member} > - + + + {/* Dialog Delete */} + + ); } diff --git a/frontend/dashboard/src/pages/Corporates/Member/sections/DialogDeleteMember.tsx b/frontend/dashboard/src/pages/Corporates/Member/sections/DialogDeleteMember.tsx new file mode 100755 index 00000000..44f4259a --- /dev/null +++ b/frontend/dashboard/src/pages/Corporates/Member/sections/DialogDeleteMember.tsx @@ -0,0 +1,132 @@ +import MuiDialog from "@/components/MuiDialog"; +import { Autocomplete, Button, Card, Checkbox, DialogActions, Grid, Typography } from "@mui/material"; +import { Paper } from "@mui/material"; +import { Stack } from '@mui/material'; +import React, { useState } from 'react'; +import { fDateTimesecond, toTitleCase } from "@/utils/formatTime"; +import axios from "@/utils/axios"; +import { enqueueSnackbar } from "notistack"; +import { useNavigate } from "react-router"; +import { TextField } from "@mui/material"; + + +type DialogDeleteType = { + openDialog: boolean; + setOpenDialog: any; + onSubmit?: void; + id: number|undefined; +} + +export default function DialogDeleteMember({id, setOpenDialog, openDialog,onSubmit} : DialogDeleteType ) { + const style1 = { + color: '#919EAB', + width: '30%' + } + const style2 = { + width: '70%' + } + const marginBottom2 = { + marginBottom: 2, + } + + const handleCloseDialog = () => { + setOpenDialog(false); + resetForm(); + } + + const [isReasonSelected, setIsReasonSelected] = useState(false); + + const reasons = [ + { value: 'agreement', label: 'Agreement changed' }, + { value: 'endorsement', label: 'Endorsement' }, + { value: 'renewal', label: 'Renewal' }, + { value: 'wrong_setting', label: 'Wrong Setting' }, + // Add more options as needed + ]; + const [formData, setFormData] = useState({ + reason: null + }); + + const resetForm = () => { + setFormData({ + reason: null + }); + }; + + const handleChange = (field, value) => { + setFormData((prevData) => ({ + ...prevData, + [field]: value, + })); + if (field === 'reason') { + setIsReasonSelected(!!value); + } + + }; + + const handleSubmit = () => { + if (isReasonSelected && formData.reason !== '') { + axios + .post(`members/${id}`, formData) + .then((response) => { + enqueueSnackbar('Member LOG has Deleted', { variant: 'success' }); + setOpenDialog(false); + window.location.reload() + }) + .catch(({ response }) => { + enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' }); + }); + } else { + setIsReasonSelected(false); + alert('Silakan pilih alasan sebelum menghapus data.'); + } + + } + + + const getContent = () => ( + + Are you sure to delete this detail Member ? + + + + Reason* + option.label} + fullWidth + value={reasons.find((r) => r.value === formData.reason) || null} // Use find to match the default value + onChange={(e, newValue) => handleChange('reason', newValue?.value)} + renderInput={(params) => ( + + )} + /> + + + + + + + + + ); + + + return ( + + ); +}