implemented confirm action for privacy office

This commit is contained in:
2025-11-19 10:06:50 +03:30
parent 5a7f8d1675
commit 2e68ac4472
2 changed files with 44 additions and 8 deletions

View File

@@ -1,10 +1,18 @@
import { PRIVACY_ADMIN_ACTION_API } from "@/core/utils/routes";
import useRequest from "@/lib/hooks/useRequest";
import { Box, Button, Checkbox, DialogActions, FormControlLabel, TextField } from "@mui/material";
import { useState } from "react";
import { Controller, useForm } from "react-hook-form";
export default function ConfirmRequestForm({ mutate, onClose }) {
export default function ConfirmRequestForm({ mutate, onClose, rowId }) {
const [isSubmitting, setIsSubmitting] = useState(false);
const { control, handleSubmit } = useForm({
const request = useRequest({ notificationSuccess: true, notificationFailed: true });
const {
control,
handleSubmit,
formState: { errors },
} = useForm({
defaultValues: {
expert_description: "",
need_payment: false,
@@ -13,10 +21,25 @@ export default function ConfirmRequestForm({ mutate, onClose }) {
});
const onSubmit = (data) => {
console.log(data);
const confirmType = data.needsAccessRoad ? "need_road_access" : "without_road_access";
const url = `${PRIVACY_ADMIN_ACTION_API}/${confirmType}/${rowId}`;
const body = {
expert_description: data.expert_description,
need_payment: data.need_payment ? 1 : 0,
};
setIsSubmitting(true);
try {
request(url, "post", {
data: body,
}).then(() => {
mutate();
onClose();
});
} catch (error) {
} finally {
setIsSubmitting(false);
}
};
return (
@@ -24,8 +47,20 @@ export default function ConfirmRequestForm({ mutate, onClose }) {
<Controller
name="expert_description"
control={control}
render={({ field }) => <TextField {...field} fullWidth multiline minRows={3} label="توضیحات" />}
rules={{ required: "توضیحات الزامی است" }}
render={({ field }) => (
<TextField
{...field}
fullWidth
multiline
minRows={3}
label="توضیحات"
error={!!errors.expert_description}
helperText={errors.expert_description?.message}
/>
)}
/>
<Controller
name="need_payment"
control={control}
@@ -36,13 +71,14 @@ export default function ConfirmRequestForm({ mutate, onClose }) {
/>
)}
/>
<Controller
name="needsAccessRoad"
control={control}
render={({ field }) => (
<FormControlLabel
control={<Checkbox {...field} checked={field.value} />}
label="نیاز به پرداخت وجه خزانه"
label="نیاز به راه دسترسی"
/>
)}
/>

View File

@@ -18,7 +18,7 @@ export default function RenderActionForm({ type, rowData, mutate, onClose }) {
case "reject_request_5":
return <RejectFileForm mutate={mutate} onClose={onClose} rowId={rowData.id} />;
case "confirm_request_2":
return <ConfirmRequestForm mutate={mutate} onClose={onClose} />;
return <ConfirmRequestForm mutate={mutate} onClose={onClose} rowId={rowData.id} />;
case "confirm_request_5":
return <ConfirmFileForm mutate={mutate} onClose={onClose} />;
case "confirm_request_13":