complete directory structure and adding detail dialog to other pages

This commit is contained in:
2024-09-24 06:59:02 +00:00
committed by AmirHossein Mahmoodi
parent 805e659103
commit 7267e1bc36
15 changed files with 344 additions and 31 deletions

View File

@@ -0,0 +1,75 @@
"use client";
import { Dialog, DialogContent } from "@mui/material";
import { object, string } from "yup";
import useRequest from "@/lib/hooks/useRequest";
import { useForm } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
import StyledForm from "@/core/components/StyledForm";
import ApplicantRequestDetail from "@/core/components/ApplicantRequestDetail";
const fakeData = {
id: 1,
shomareh_darkhast: "2124",
ostan: "ostan",
shahr: "shahr",
shahrestan: "shahrestan",
bakhsh: "bakhsh",
roosta: "roosta",
tarikh_darkhast: "tarikh_darkhast",
sazman: "sazman",
masahat_zamin: "masahat_zamin",
masahat_tarh: "masahat_tarh",
gorooh_tarh: "gorooh_tarh",
onvane_tarh: "onvane_tarh",
address: "کرج - فلان جا - جنب پاساژ - نزدیک اونجا - اونور خیابون - زیر رو گذر - روی زیر گذر",
file_mosavab: "file",
polygon: [
[51.515, -0.09],
[51.52, -0.1],
[51.52, -0.12],
],
};
const validationSchema = object({
description: string().required("وارد کردن توضیحات الزامیست!"),
});
const DetailDialog = ({ taskModal, setTaskModal, rowId, mutate }) => {
const requestServer = useRequest({ auth: true });
const defaultValues = {
description: "",
};
const handleClose = () => {
setTaskModal(false);
};
const {
register,
handleSubmit,
formState: { isSubmitting, errors, touchedFields },
} = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" });
const onSubmit = async (data) => {
const formData = new FormData();
formData.append("description", data.description);
requestServer(`api-for-send-to-harim/${rowId}`, "post", {
data: formData,
})
.then(() => {
handleClose();
mutate();
})
.catch(() => {});
};
return (
<StyledForm onSubmit={handleSubmit(onSubmit)}>
<Dialog open={taskModal} onClose={handleClose} maxWidth="lg" fullWidth>
<DialogContent dividers>
<ApplicantRequestDetail data={fakeData} />
</DialogContent>
</Dialog>
</StyledForm>
);
};
export default DetailDialog;

View File

@@ -0,0 +1,26 @@
"use client";
import { IconButton, Tooltip } from "@mui/material";
import AssignmentIcon from "@mui/icons-material/Assignment";
import DetailDialog from "./DetailDialog";
import { useState } from "react";
const TaskDetail = ({ rowId, mutate }) => {
const [taskModal, setTaskModal] = useState(false);
const openDetailDialog = () => {
setTaskModal(true);
};
return (
<>
<Tooltip title="جزئیات طرح متقاضی" arrow placement="right">
<IconButton color="primary" onClick={openDetailDialog}>
<AssignmentIcon />
</IconButton>
</Tooltip>
<DetailDialog taskModal={taskModal} setTaskModal={setTaskModal} rowId={rowId} mutate={mutate} />
</>
);
};
export default TaskDetail;

View File

@@ -0,0 +1,11 @@
import TaskDetail from "./TaskDetail";
import { Box } from "@mui/material";
const RowActions = ({ row, mutate }) => {
return (
<Box sx={{ display: "flex", gap: 1 }}>
<TaskDetail mutate={mutate} rowId={row.getValue("id")} />
</Box>
);
};
export default RowActions;

View File

@@ -1,9 +1,9 @@
"use client";
import { useMemo } from "react";
import { Box, IconButton, Tooltip } from "@mui/material";
import { Box } from "@mui/material";
import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import AssignmentIcon from "@mui/icons-material/Assignment";
import RowActions from "./RowActions";
const TaskList = () => {
const columns = useMemo(
@@ -112,13 +112,7 @@ const TaskList = () => {
table_name={"assistantZaminGovList"}
enableRowActions
positionActionsColumn={"last"}
renderRowActions={({ row, table }) => (
<Tooltip arrow title="نمایش جزئیات" placement="right">
<IconButton color="success" onClick={() => console.log("next part")}>
<AssignmentIcon />
</IconButton>
</Tooltip>
)}
renderRowActions={({ row }) => <RowActions row={row} />}
/>
</Box>
</>

View File

@@ -1,7 +1,7 @@
import { Dialog, DialogTitle, IconButton, Stack, Tooltip } from "@mui/material";
import ReplyIcon from "@mui/icons-material/Reply";
import DialogTransition from "@/core/components/DialogTransition";
import ReferFormContext from "@/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/ReferFormContext";
import ReferFormContext from "./ReferFormContext";
import { useState } from "react";
const ReferForm = ({ rowId, mutate }) => {

View File

@@ -0,0 +1,75 @@
"use client";
import { Dialog, DialogContent } from "@mui/material";
import { object, string } from "yup";
import useRequest from "@/lib/hooks/useRequest";
import { useForm } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
import StyledForm from "@/core/components/StyledForm";
import ApplicantRequestDetail from "@/core/components/ApplicantRequestDetail";
const fakeData = {
id: 1,
shomareh_darkhast: "2124",
ostan: "ostan",
shahr: "shahr",
shahrestan: "shahrestan",
bakhsh: "bakhsh",
roosta: "roosta",
tarikh_darkhast: "tarikh_darkhast",
sazman: "sazman",
masahat_zamin: "masahat_zamin",
masahat_tarh: "masahat_tarh",
gorooh_tarh: "gorooh_tarh",
onvane_tarh: "onvane_tarh",
address: "کرج - فلان جا - جنب پاساژ - نزدیک اونجا - اونور خیابون - زیر رو گذر - روی زیر گذر",
file_mosavab: "file",
polygon: [
[51.515, -0.09],
[51.52, -0.1],
[51.52, -0.12],
],
};
const validationSchema = object({
description: string().required("وارد کردن توضیحات الزامیست!"),
});
const DetailDialog = ({ taskModal, setTaskModal, rowId, mutate }) => {
const requestServer = useRequest({ auth: true });
const defaultValues = {
description: "",
};
const handleClose = () => {
setTaskModal(false);
};
const {
register,
handleSubmit,
formState: { isSubmitting, errors, touchedFields },
} = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" });
const onSubmit = async (data) => {
const formData = new FormData();
formData.append("description", data.description);
requestServer(`api-for-send-to-harim/${rowId}`, "post", {
data: formData,
})
.then(() => {
handleClose();
mutate();
})
.catch(() => {});
};
return (
<StyledForm onSubmit={handleSubmit(onSubmit)}>
<Dialog open={taskModal} onClose={handleClose} maxWidth="lg" fullWidth>
<DialogContent dividers>
<ApplicantRequestDetail data={fakeData} />
</DialogContent>
</Dialog>
</StyledForm>
);
};
export default DetailDialog;

View File

@@ -0,0 +1,26 @@
"use client";
import { IconButton, Tooltip } from "@mui/material";
import AssignmentIcon from "@mui/icons-material/Assignment";
import DetailDialog from "./DetailDialog";
import { useState } from "react";
const TaskDetail = ({ rowId, mutate }) => {
const [taskModal, setTaskModal] = useState(false);
const openDetailDialog = () => {
setTaskModal(true);
};
return (
<>
<Tooltip title="جزئیات طرح متقاضی" arrow placement="right">
<IconButton color="primary" onClick={openDetailDialog}>
<AssignmentIcon />
</IconButton>
</Tooltip>
<DetailDialog taskModal={taskModal} setTaskModal={setTaskModal} rowId={rowId} mutate={mutate} />
</>
);
};
export default TaskDetail;

View File

@@ -0,0 +1,11 @@
import TaskDetail from "./TaskDetail";
import { Box } from "@mui/material";
const RowActions = ({ row, mutate }) => {
return (
<Box sx={{ display: "flex", gap: 1 }}>
<TaskDetail mutate={mutate} rowId={row.getValue("id")} />
</Box>
);
};
export default RowActions;

View File

@@ -1,9 +1,9 @@
"use client";
import { useMemo } from "react";
import { Box, IconButton, Tooltip } from "@mui/material";
import { Box } from "@mui/material";
import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import AssignmentIcon from "@mui/icons-material/Assignment";
import RowActions from "./RowActions";
const TaskList = () => {
const columns = useMemo(
@@ -112,13 +112,7 @@ const TaskList = () => {
table_name={"generalManagerZaminGovList"}
enableRowActions
positionActionsColumn={"last"}
renderRowActions={({ row, table }) => (
<Tooltip arrow title="نمایش جزئیات" placement="right">
<IconButton color="success" onClick={() => console.log("next part")}>
<AssignmentIcon />
</IconButton>
</Tooltip>
)}
renderRowActions={({ row }) => <RowActions row={row} />}
/>
</Box>
</>

View File

@@ -2,7 +2,7 @@ import { Dialog, DialogTitle, IconButton, Stack, Tooltip } from "@mui/material";
import ReplyIcon from "@mui/icons-material/Reply";
import DialogTransition from "@/core/components/DialogTransition";
import { useState } from "react";
import ReferFormContext from "@/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/ReferFormContext";
import ReferFormContext from "./ReferFormContext";
const ReferForm = ({ rowId, mutate }) => {
const [openReferDialog, setOpenReferDialog] = useState(false);

View File

@@ -0,0 +1,75 @@
"use client";
import { Dialog, DialogContent } from "@mui/material";
import { object, string } from "yup";
import useRequest from "@/lib/hooks/useRequest";
import { useForm } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
import StyledForm from "@/core/components/StyledForm";
import ApplicantRequestDetail from "@/core/components/ApplicantRequestDetail";
const fakeData = {
id: 1,
shomareh_darkhast: "2124",
ostan: "ostan",
shahr: "shahr",
shahrestan: "shahrestan",
bakhsh: "bakhsh",
roosta: "roosta",
tarikh_darkhast: "tarikh_darkhast",
sazman: "sazman",
masahat_zamin: "masahat_zamin",
masahat_tarh: "masahat_tarh",
gorooh_tarh: "gorooh_tarh",
onvane_tarh: "onvane_tarh",
address: "کرج - فلان جا - جنب پاساژ - نزدیک اونجا - اونور خیابون - زیر رو گذر - روی زیر گذر",
file_mosavab: "file",
polygon: [
[51.515, -0.09],
[51.52, -0.1],
[51.52, -0.12],
],
};
const validationSchema = object({
description: string().required("وارد کردن توضیحات الزامیست!"),
});
const DetailDialog = ({ taskModal, setTaskModal, rowId, mutate }) => {
const requestServer = useRequest({ auth: true });
const defaultValues = {
description: "",
};
const handleClose = () => {
setTaskModal(false);
};
const {
register,
handleSubmit,
formState: { isSubmitting, errors, touchedFields },
} = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" });
const onSubmit = async (data) => {
const formData = new FormData();
formData.append("description", data.description);
requestServer(`api-for-send-to-harim/${rowId}`, "post", {
data: formData,
})
.then(() => {
handleClose();
mutate();
})
.catch(() => {});
};
return (
<StyledForm onSubmit={handleSubmit(onSubmit)}>
<Dialog open={taskModal} onClose={handleClose} maxWidth="lg" fullWidth>
<DialogContent dividers>
<ApplicantRequestDetail data={fakeData} />
</DialogContent>
</Dialog>
</StyledForm>
);
};
export default DetailDialog;

View File

@@ -0,0 +1,26 @@
"use client";
import { IconButton, Tooltip } from "@mui/material";
import AssignmentIcon from "@mui/icons-material/Assignment";
import DetailDialog from "./DetailDialog";
import { useState } from "react";
const TaskDetail = ({ rowId, mutate }) => {
const [taskModal, setTaskModal] = useState(false);
const openDetailDialog = () => {
setTaskModal(true);
};
return (
<>
<Tooltip title="جزئیات طرح متقاضی" arrow placement="right">
<IconButton color="primary" onClick={openDetailDialog}>
<AssignmentIcon />
</IconButton>
</Tooltip>
<DetailDialog taskModal={taskModal} setTaskModal={setTaskModal} rowId={rowId} mutate={mutate} />
</>
);
};
export default TaskDetail;

View File

@@ -1,8 +1,13 @@
import ReferForm from "@/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer";
import ReferForm from "./Refer";
import TaskDetail from "./TaskDetail";
import { Box } from "@mui/material";
const RowActions = ({ row, mutate }) => {
return (
<ReferForm mutate={mutate} rowId={row.getValue("id")} /> //rowId should pass
<Box sx={{ display: "flex", gap: 1 }}>
<ReferForm mutate={mutate} rowId={row.getValue("id")} />
<TaskDetail mutate={mutate} rowId={row.getValue("id")} />
</Box>
);
};
export default RowActions;

View File

@@ -1,10 +1,9 @@
"use client";
import { useMemo } from "react";
import { Box, IconButton, Tooltip } from "@mui/material";
import { Box } from "@mui/material";
import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import AssignmentIcon from "@mui/icons-material/Assignment";
import RowActions from "@/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions";
import RowActions from "./RowActions";
const TaskList = () => {
const columns = useMemo(
@@ -121,7 +120,7 @@ const TaskList = () => {
table_name={"provinceAdminZaminGovList"}
enableRowActions
positionActionsColumn={"last"}
renderRowActions={({ row, table }) => <RowActions row={row} />}
renderRowActions={({ row }) => <RowActions row={row} />}
/>
</Box>
</>

View File

@@ -11,11 +11,7 @@ const ApplicantRequestDetail = ({ data }) => {
return (
<>
<Divider sx={{ my: 3 }}>
<Chip
color="primary"
sx={{ mx: 2, fontSize: "13px", fontWeight: 500 }}
label="اطلاعات تکمیلی طرح متقاضی"
/>
<Chip color="primary" sx={{ mx: 1, fontSize: "13px", fontWeight: 500 }} label="اطلاعات طرح متقاضی" />
</Divider>
<Grid container columnSpacing={3} rowSpacing={1.2}>
{Object.entries(data).map(([key, value]) => (