diff --git a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/TaskDetail/DetailDialog.jsx b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/TaskDetail/DetailDialog.jsx
new file mode 100644
index 0000000..a91fd31
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/TaskDetail/DetailDialog.jsx
@@ -0,0 +1,109 @@
+"use client";
+
+import {
+ Button,
+ Dialog,
+ DialogActions,
+ DialogContent,
+ FormControl,
+ FormHelperText,
+ InputLabel,
+ OutlinedInput,
+} 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 (
+
+
+
+ );
+};
+export default DetailDialog;
diff --git a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/TaskDetail/index.jsx b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/TaskDetail/index.jsx
new file mode 100644
index 0000000..24f6b31
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/TaskDetail/index.jsx
@@ -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 (
+ <>
+
+
+
+
+
+
+ >
+ );
+};
+export default TaskDetail;
diff --git a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/index.jsx
index 4cd1229..0b936c3 100644
--- a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/index.jsx
@@ -1,8 +1,15 @@
-import ReferForm from "@/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer";
+"use client";
+
+import ReferForm from "./Refer";
+import TaskDetail from "./TaskDetail";
+import { Box } from "@mui/material";
const RowActions = ({ row, mutate }) => {
return (
- //rowId should pass
+
+
+
+
);
};
export default RowActions;
diff --git a/src/core/components/ApplicantRequestDetail/DetailItem.jsx b/src/core/components/ApplicantRequestDetail/DetailItem.jsx
new file mode 100644
index 0000000..099e955
--- /dev/null
+++ b/src/core/components/ApplicantRequestDetail/DetailItem.jsx
@@ -0,0 +1,52 @@
+"use client";
+
+import { Box, Chip, Divider, Grid, Typography } from "@mui/material";
+import QrCode2Icon from "@mui/icons-material/QrCode2";
+import HomeWorkIcon from "@mui/icons-material/HomeWork";
+import DomainIcon from "@mui/icons-material/Domain";
+import CottageIcon from "@mui/icons-material/Cottage";
+import AccountTreeIcon from "@mui/icons-material/AccountTree";
+import HolidayVillageIcon from "@mui/icons-material/HolidayVillage";
+import CalendarMonthIcon from "@mui/icons-material/CalendarMonth";
+import FaxIcon from "@mui/icons-material/Fax";
+import FullscreenIcon from "@mui/icons-material/Fullscreen";
+import ArchitectureIcon from "@mui/icons-material/Architecture";
+import Diversity2Icon from "@mui/icons-material/Diversity2";
+import SubtitlesIcon from "@mui/icons-material/Subtitles";
+import FingerprintIcon from "@mui/icons-material/Fingerprint";
+
+const findItem = {
+ id: { title: "کد یکتا", icon: },
+ shomareh_darkhast: { title: "شماره درخواست", icon: },
+ ostan: { title: "استان", icon: },
+ shahr: { title: "شهر", icon: },
+ shahrestan: { title: "شهرستان", icon: },
+ bakhsh: { title: "بخش", icon: },
+ roosta: { title: "روستا", icon: },
+ tarikh_darkhast: { title: "تاریخ درخواست", icon: },
+ sazman: { title: "سازمان", icon: },
+ masahat_zamin: { title: "مساحت زمین", icon: },
+ masahat_tarh: { title: "مساحت طرح", icon: },
+ gorooh_tarh: { title: "گروه طرح", icon: },
+ onvane_tarh: { title: "عنوان طرح", icon: },
+};
+
+const DetailItem = ({ item }) => {
+ const currentItem = findItem[item.key];
+ if (!currentItem) return null;
+
+ return (
+
+
+
+
+ {item.value}
+
+
+ );
+};
+export default DetailItem;
diff --git a/src/core/components/ApplicantRequestDetail/DetailMap.jsx b/src/core/components/ApplicantRequestDetail/DetailMap.jsx
new file mode 100644
index 0000000..902ec3a
--- /dev/null
+++ b/src/core/components/ApplicantRequestDetail/DetailMap.jsx
@@ -0,0 +1,39 @@
+"use client";
+
+import { Box } from "@mui/material";
+import dynamic from "next/dynamic";
+import MapLoading from "@/core/components/MapLayer/Loading";
+import FlyToPolyGon from "./FlyToPolygon";
+
+const MapLayer = dynamic(() => import("@/core/components/MapLayer"), {
+ loading: () => ,
+ ssr: false,
+});
+
+const DetailMap = ({ data }) => {
+ return (
+
+
+
+
+
+
+
+ );
+};
+export default DetailMap;
diff --git a/src/core/components/ApplicantRequestDetail/FlyToPolygon.jsx b/src/core/components/ApplicantRequestDetail/FlyToPolygon.jsx
new file mode 100644
index 0000000..4a39edd
--- /dev/null
+++ b/src/core/components/ApplicantRequestDetail/FlyToPolygon.jsx
@@ -0,0 +1,22 @@
+"use client";
+
+import { Polygon, useMap } from "react-leaflet";
+import { useEffect } from "react";
+
+const purpleOptions = { color: "purple" };
+
+const FlyToPolygon = ({ polygon }) => {
+ const map = useMap();
+
+ useEffect(() => {
+ if (map) {
+ const leafletPolygon = L.polygon(polygon);
+ const bounds = leafletPolygon.getBounds();
+ map.flyToBounds(bounds, { padding: [50, 50] });
+ }
+ }, [map, polygon]);
+
+ return ;
+};
+
+export default FlyToPolygon;
diff --git a/src/core/components/ApplicantRequestDetail/index.jsx b/src/core/components/ApplicantRequestDetail/index.jsx
new file mode 100644
index 0000000..b97279a
--- /dev/null
+++ b/src/core/components/ApplicantRequestDetail/index.jsx
@@ -0,0 +1,61 @@
+"use client";
+
+import { Box, Button, Chip, Divider, Grid, Typography } from "@mui/material";
+import AttachFileIcon from "@mui/icons-material/AttachFile";
+import DownloadingIcon from "@mui/icons-material/Downloading";
+import DetailItem from "./DetailItem";
+import DetailMap from "./DetailMap";
+import ContactMailIcon from "@mui/icons-material/ContactMail";
+
+const ApplicantRequestDetail = ({ data }) => {
+ return (
+ <>
+
+
+
+
+ {Object.entries(data).map(([key, value]) => (
+
+ ))}
+
+
+ }
+ sx={{ fontSize: "12px", fontWeight: 500, pl: "5px" }}
+ label="فایل مصوب"
+ />
+
+ }
+ sx={{ borderRadius: 5 }}
+ >
+ دریافت
+
+
+
+
+
+
+
+ }
+ label="آدرس"
+ />
+
+
+ {data.address}
+
+
+
+
+ >
+ );
+};
+export default ApplicantRequestDetail;