diff --git a/src/app/(withAuth)/dashboard/azmayesh/loading.jsx b/src/app/(withAuth)/dashboard/azmayesh/loading.jsx
index 4d80e97..4535a8d 100644
--- a/src/app/(withAuth)/dashboard/azmayesh/loading.jsx
+++ b/src/app/(withAuth)/dashboard/azmayesh/loading.jsx
@@ -1,7 +1,7 @@
-'use client'
-import PageLoading from "@/core/components/PageLoading"
+"use client";
+import PageLoading from "@/core/components/PageLoading";
const Loading = () => {
- return
-}
-export default Loading
\ No newline at end of file
+ return ;
+};
+export default Loading;
diff --git a/src/app/(withAuth)/dashboard/azmayesh_type/loading.jsx b/src/app/(withAuth)/dashboard/azmayesh_type/loading.jsx
index 4d80e97..4535a8d 100644
--- a/src/app/(withAuth)/dashboard/azmayesh_type/loading.jsx
+++ b/src/app/(withAuth)/dashboard/azmayesh_type/loading.jsx
@@ -1,7 +1,7 @@
-'use client'
-import PageLoading from "@/core/components/PageLoading"
+"use client";
+import PageLoading from "@/core/components/PageLoading";
const Loading = () => {
- return
-}
-export default Loading
\ No newline at end of file
+ return ;
+};
+export default Loading;
diff --git a/src/app/(withAuth)/dashboard/loading.jsx b/src/app/(withAuth)/dashboard/loading.jsx
index 4d80e97..4535a8d 100644
--- a/src/app/(withAuth)/dashboard/loading.jsx
+++ b/src/app/(withAuth)/dashboard/loading.jsx
@@ -1,7 +1,7 @@
-'use client'
-import PageLoading from "@/core/components/PageLoading"
+"use client";
+import PageLoading from "@/core/components/PageLoading";
const Loading = () => {
- return
-}
-export default Loading
\ No newline at end of file
+ return ;
+};
+export default Loading;
diff --git a/src/app/(withAuth)/dashboard/road-patrols/operator/loading.jsx b/src/app/(withAuth)/dashboard/road-patrols/operator/loading.jsx
index 4d80e97..4535a8d 100644
--- a/src/app/(withAuth)/dashboard/road-patrols/operator/loading.jsx
+++ b/src/app/(withAuth)/dashboard/road-patrols/operator/loading.jsx
@@ -1,7 +1,7 @@
-'use client'
-import PageLoading from "@/core/components/PageLoading"
+"use client";
+import PageLoading from "@/core/components/PageLoading";
const Loading = () => {
- return
-}
-export default Loading
\ No newline at end of file
+ return ;
+};
+export default Loading;
diff --git a/src/app/(withAuth)/dashboard/road-patrols/supervisor/loading.jsx b/src/app/(withAuth)/dashboard/road-patrols/supervisor/loading.jsx
index 4d80e97..4535a8d 100644
--- a/src/app/(withAuth)/dashboard/road-patrols/supervisor/loading.jsx
+++ b/src/app/(withAuth)/dashboard/road-patrols/supervisor/loading.jsx
@@ -1,7 +1,7 @@
-'use client'
-import PageLoading from "@/core/components/PageLoading"
+"use client";
+import PageLoading from "@/core/components/PageLoading";
const Loading = () => {
- return
-}
-export default Loading
\ No newline at end of file
+ return ;
+};
+export default Loading;
diff --git a/src/components/dashboard/azmayesh/AzmayeshList.jsx b/src/components/dashboard/azmayesh/AzmayeshList.jsx
index 4bfd193..5e6d68c 100644
--- a/src/components/dashboard/azmayesh/AzmayeshList.jsx
+++ b/src/components/dashboard/azmayesh/AzmayeshList.jsx
@@ -18,7 +18,7 @@ const AzmayeshList = () => {
id: "id",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "azmayesh_type_name",
@@ -26,7 +26,7 @@ const AzmayeshList = () => {
id: "azmayesh_type_name",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "project_name",
@@ -34,7 +34,7 @@ const AzmayeshList = () => {
id: "project_name",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "lat",
@@ -43,7 +43,7 @@ const AzmayeshList = () => {
enableColumnFilter: false,
datatype: "text",
enableSorting: false,
- filterFn: "equals",
+ filterMode: "equals",
Cell: ({ row }) => ,
},
{
@@ -52,7 +52,7 @@ const AzmayeshList = () => {
id: "employer",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "consultant",
@@ -60,7 +60,7 @@ const AzmayeshList = () => {
id: "consultant",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "contractor",
@@ -68,7 +68,7 @@ const AzmayeshList = () => {
id: "contractor",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "applicant",
@@ -76,7 +76,7 @@ const AzmayeshList = () => {
id: "applicant",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "work_number",
@@ -84,7 +84,7 @@ const AzmayeshList = () => {
id: "work_number",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "request_number",
@@ -92,7 +92,7 @@ const AzmayeshList = () => {
id: "request_number",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "request_date",
@@ -100,7 +100,7 @@ const AzmayeshList = () => {
id: "request_date",
enableColumnFilter: false,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
Cell: ({ renderedCellValue }) => (
{renderedCellValue ? moment(renderedCellValue).locale("fa").format("YYYY/MM/DD") : "-"}
@@ -113,7 +113,7 @@ const AzmayeshList = () => {
id: "report_date",
enableColumnFilter: false,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
Cell: ({ renderedCellValue }) => (
{renderedCellValue ? moment(renderedCellValue).locale("fa").format("YYYY/MM/DD") : "-"}
@@ -126,7 +126,7 @@ const AzmayeshList = () => {
id: "updated_at",
enableColumnFilter: false,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
Cell: ({ renderedCellValue }) => (
{renderedCellValue ? moment(renderedCellValue).locale("fa").format("HH:mm | YYYY/MM/DD") : "-"}
diff --git a/src/components/dashboard/azmayeshType/AzmayeshTypeList.jsx b/src/components/dashboard/azmayeshType/AzmayeshTypeList.jsx
index b4d5fbb..eef84f9 100644
--- a/src/components/dashboard/azmayeshType/AzmayeshTypeList.jsx
+++ b/src/components/dashboard/azmayeshType/AzmayeshTypeList.jsx
@@ -17,7 +17,7 @@ const AzmayeshTypeList = () => {
id: "id",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "name",
@@ -25,7 +25,7 @@ const AzmayeshTypeList = () => {
id: "name",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "updated_at",
@@ -33,7 +33,7 @@ const AzmayeshTypeList = () => {
id: "updated_at",
enableColumnFilter: false,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
Cell: ({ renderedCellValue }) => (
{renderedCellValue ? moment(renderedCellValue).locale("fa").format("HH:mm | YYYY/MM/DD") : "-"}
diff --git a/src/components/dashboard/carDetails/CarDetailsContent.jsx b/src/components/dashboard/carDetails/CarDetailsContent.jsx
index 8c709cf..4d71d02 100644
--- a/src/components/dashboard/carDetails/CarDetailsContent.jsx
+++ b/src/components/dashboard/carDetails/CarDetailsContent.jsx
@@ -63,7 +63,6 @@ const CarDetailsContent = ({ setOpenCarDialog }) => {
const handleSubmit = async (values, props) => {
props.setSubmitting(true);
setOpenCarDetailContent(true);
- console.log(values);
};
const formik = useFormik({
@@ -71,7 +70,7 @@ const CarDetailsContent = ({ setOpenCarDialog }) => {
validationSchema,
onSubmit: handleSubmit,
});
- console.log(formik.errors);
+
return (
<>
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx
index 8f158d9..20e8300 100644
--- a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx
@@ -14,7 +14,7 @@ const TaskList = () => {
id: "id",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "aplication_number",
@@ -22,7 +22,7 @@ const TaskList = () => {
id: "aplication_number",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "application_date",
@@ -30,7 +30,7 @@ const TaskList = () => {
id: "application_date",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "province",
@@ -38,7 +38,7 @@ const TaskList = () => {
id: "province",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "township",
@@ -46,7 +46,7 @@ const TaskList = () => {
id: "township",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "city",
@@ -54,7 +54,7 @@ const TaskList = () => {
id: "city",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "county",
@@ -62,7 +62,7 @@ const TaskList = () => {
id: "county",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "village",
@@ -70,7 +70,7 @@ const TaskList = () => {
id: "village",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "land_area",
@@ -78,7 +78,7 @@ const TaskList = () => {
id: "land_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_area",
@@ -86,7 +86,7 @@ const TaskList = () => {
id: "design_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "organization",
@@ -94,7 +94,7 @@ const TaskList = () => {
id: "organization",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_group",
@@ -102,7 +102,7 @@ const TaskList = () => {
id: "design_group",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_title",
@@ -110,7 +110,7 @@ const TaskList = () => {
id: "design_title",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "state",
@@ -118,7 +118,7 @@ const TaskList = () => {
id: "state",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
],
[]
diff --git a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx
index 83e2f6c..6345432 100644
--- a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx
@@ -14,7 +14,7 @@ const TaskList = () => {
id: "id",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "aplication_number",
@@ -22,7 +22,7 @@ const TaskList = () => {
id: "aplication_number",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "application_date",
@@ -30,7 +30,7 @@ const TaskList = () => {
id: "application_date",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "province",
@@ -38,7 +38,7 @@ const TaskList = () => {
id: "province",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "township",
@@ -46,7 +46,7 @@ const TaskList = () => {
id: "township",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "city",
@@ -54,7 +54,7 @@ const TaskList = () => {
id: "city",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "county",
@@ -62,7 +62,7 @@ const TaskList = () => {
id: "county",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "village",
@@ -70,7 +70,7 @@ const TaskList = () => {
id: "village",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "land_area",
@@ -78,7 +78,7 @@ const TaskList = () => {
id: "land_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_area",
@@ -86,7 +86,7 @@ const TaskList = () => {
id: "design_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "organization",
@@ -94,7 +94,7 @@ const TaskList = () => {
id: "organization",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_group",
@@ -102,7 +102,7 @@ const TaskList = () => {
id: "design_group",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_title",
@@ -110,7 +110,7 @@ const TaskList = () => {
id: "design_title",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "state",
@@ -118,7 +118,7 @@ const TaskList = () => {
id: "state",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
],
[]
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx
index 92f500b..dcb9084 100644
--- a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx
@@ -14,7 +14,7 @@ const TaskList = () => {
id: "id",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "aplication_number",
@@ -22,7 +22,7 @@ const TaskList = () => {
id: "aplication_number",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "application_date",
@@ -30,7 +30,7 @@ const TaskList = () => {
id: "application_date",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "province",
@@ -38,7 +38,7 @@ const TaskList = () => {
id: "province",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "township",
@@ -46,7 +46,7 @@ const TaskList = () => {
id: "township",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "city",
@@ -54,7 +54,7 @@ const TaskList = () => {
id: "city",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "county",
@@ -62,7 +62,7 @@ const TaskList = () => {
id: "county",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "village",
@@ -70,7 +70,7 @@ const TaskList = () => {
id: "village",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "land_area",
@@ -78,7 +78,7 @@ const TaskList = () => {
id: "land_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_area",
@@ -86,7 +86,7 @@ const TaskList = () => {
id: "design_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "organization",
@@ -94,7 +94,7 @@ const TaskList = () => {
id: "organization",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_group",
@@ -102,7 +102,7 @@ const TaskList = () => {
id: "design_group",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_title",
@@ -110,7 +110,7 @@ const TaskList = () => {
id: "design_title",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "state",
@@ -118,7 +118,7 @@ const TaskList = () => {
id: "state",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
],
[]
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx
index 550e152..d059812 100644
--- a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx
@@ -14,7 +14,7 @@ const TaskList = () => {
id: "id",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "aplication_number",
@@ -22,7 +22,7 @@ const TaskList = () => {
id: "aplication_number",
enableColumnFilter: false,
datatype: "text",
- filterFn: "notEquals",
+ filterMode: "notEquals",
},
{
accessorKey: "application_date",
@@ -30,7 +30,7 @@ const TaskList = () => {
id: "application_date",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "province",
@@ -38,7 +38,7 @@ const TaskList = () => {
id: "province",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "township",
@@ -46,7 +46,7 @@ const TaskList = () => {
id: "township",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "city",
@@ -54,7 +54,7 @@ const TaskList = () => {
id: "city",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "county",
@@ -62,7 +62,7 @@ const TaskList = () => {
id: "county",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "village",
@@ -70,7 +70,7 @@ const TaskList = () => {
id: "village",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "land_area",
@@ -78,7 +78,7 @@ const TaskList = () => {
id: "land_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_area",
@@ -86,7 +86,7 @@ const TaskList = () => {
id: "design_area",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "organization",
@@ -94,7 +94,7 @@ const TaskList = () => {
id: "organization",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_group",
@@ -102,7 +102,7 @@ const TaskList = () => {
id: "design_group",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "design_title",
@@ -110,7 +110,7 @@ const TaskList = () => {
id: "design_title",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
{
accessorKey: "state",
@@ -118,7 +118,7 @@ const TaskList = () => {
id: "state",
enableColumnFilter: false,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
},
],
[]
diff --git a/src/components/dashboard/roadPatrols/operator/OperatorList.jsx b/src/components/dashboard/roadPatrols/operator/OperatorList.jsx
index 292f197..1d7118a 100644
--- a/src/components/dashboard/roadPatrols/operator/OperatorList.jsx
+++ b/src/components/dashboard/roadPatrols/operator/OperatorList.jsx
@@ -16,7 +16,7 @@ const OperatorList = () => {
id: "id",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -25,7 +25,7 @@ const OperatorList = () => {
id: "operator_name",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -34,7 +34,7 @@ const OperatorList = () => {
id: "phone_number",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -43,7 +43,7 @@ const OperatorList = () => {
id: "car_id",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -52,7 +52,7 @@ const OperatorList = () => {
id: "start_date",
enableColumnFilter: true,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
Cell: ({ renderedCellValue }) => (
@@ -66,7 +66,7 @@ const OperatorList = () => {
id: "end_date",
enableColumnFilter: true,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
Cell: ({ renderedCellValue }) => (
@@ -80,7 +80,7 @@ const OperatorList = () => {
id: "register_date",
enableColumnFilter: true,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
Cell: ({ renderedCellValue }) => (
diff --git a/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx b/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx
index d568c46..6768a91 100644
--- a/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx
+++ b/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx
@@ -19,7 +19,7 @@ const OperatorList = () => {
id: "id",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -28,7 +28,7 @@ const OperatorList = () => {
id: "province",
enableColumnFilter: true,
datatype: "numeric",
- filterFn: "equals",
+ filterMode: "equals",
columnSelectOption: () => {
if (loadingProvinces) {
return [{ value: "", label: "در حال بارگذاری..." }];
@@ -50,7 +50,7 @@ const OperatorList = () => {
id: "office",
enableColumnFilter: true,
datatype: "numeric",
- filterFn: "equals",
+ filterMode: "equals",
dependencyId: "province",
columnSelectOption: (dependencyField) => {
if (dependencyField.value === "") {
@@ -66,7 +66,7 @@ const OperatorList = () => {
id: "operator_name",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -75,7 +75,7 @@ const OperatorList = () => {
id: "phone_number",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -84,7 +84,7 @@ const OperatorList = () => {
id: "car_id",
enableColumnFilter: true,
datatype: "text",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
},
{
@@ -93,7 +93,7 @@ const OperatorList = () => {
id: "start_date",
enableColumnFilter: true,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
Cell: ({ renderedCellValue }) => (
@@ -107,7 +107,7 @@ const OperatorList = () => {
id: "end_date",
enableColumnFilter: true,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
Cell: ({ renderedCellValue }) => (
@@ -121,7 +121,7 @@ const OperatorList = () => {
id: "register_date",
enableColumnFilter: true,
datatype: "date",
- filterFn: "equals",
+ filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
Cell: ({ renderedCellValue }) => (
diff --git a/src/core/components/DataTable/Main.js b/src/core/components/DataTable/Main.js
index cdb3671..c6d82d5 100644
--- a/src/core/components/DataTable/Main.js
+++ b/src/core/components/DataTable/Main.js
@@ -39,7 +39,13 @@ const DataTable_Main = (props) => {
}
return value === "" || value === null || value === undefined;
};
- const filteredFilterData = Object.values(filterData).filter((filter) => !isValueEmpty(filter.value));
+
+ const filteredFilterData = Object.values(filterData)
+ .filter((filter) => !isValueEmpty(filter.value))
+ .map(({ filterMode, ...rest }) => ({
+ ...rest,
+ fn: filterMode,
+ }));
const params = new URLSearchParams();
params.set("start", `${pagination.pageIndex * pagination.pageSize}`);
diff --git a/src/core/components/DataTable/filter/FilterBody.jsx b/src/core/components/DataTable/filter/FilterBody.jsx
index c981b93..2bc6d9c 100644
--- a/src/core/components/DataTable/filter/FilterBody.jsx
+++ b/src/core/components/DataTable/filter/FilterBody.jsx
@@ -1,13 +1,13 @@
"use client";
-import { Box, Button, Drawer, styled } from "@mui/material";
-import { Form, Formik, getIn } from "formik";
-import useTableSetting from "@/lib/hooks/useTableSetting";
-import { useEffect, useState } from "react";
-import FilterHeader from "@/core/components/DataTable/filter/FilterHeader";
-import * as Yup from "yup";
import FilterBodyField from "@/core/components/DataTable/filter/FilterBodyField";
+import FilterHeader from "@/core/components/DataTable/filter/FilterHeader";
import useDataTable from "@/lib/hooks/useDataTable";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { Box, Button, Drawer, styled } from "@mui/material";
+import { useEffect, useState } from "react";
+import { Controller, useForm, useWatch } from "react-hook-form";
+import * as Yup from "yup";
const ScrollBox = styled(Box)({
flexGrow: 1,
@@ -26,21 +26,15 @@ const ScrollBox = styled(Box)({
},
});
-function FilterBody({ columns, drawerState, setDrawerState, user_id, page_name, table_name }) {
- const { settingStore } = useTableSetting();
- const [initialValues, setInitialValues] = useState({});
- const [validationSchema, setValidationSchema] = useState({});
+function FilterBody({ columns, drawerState, setDrawerState }) {
const { filterData, setFilterData } = useDataTable();
+ const [validationSchema, setValidationSchema] = useState(Yup.object({}));
useEffect(() => {
- setInitialValues(filterData);
- }, [columns, settingStore, user_id, page_name, table_name, filterData]);
-
- useEffect(() => {
- const generatedSchema = Yup.object().shape(
- Object.keys(initialValues).reduce((acc, key) => {
- const initialValue = initialValues[key];
- if (initialValue.filterFn === "between") {
+ const schema = Yup.object(
+ Object.keys(filterData).reduce((acc, key) => {
+ const initialValue = filterData[key];
+ if (initialValue.filterMode === "between") {
acc[key] = Yup.object().shape({
value: Yup.array()
.of(Yup.string().nullable())
@@ -68,13 +62,23 @@ function FilterBody({ columns, drawerState, setDrawerState, user_id, page_name,
}, {})
);
- setValidationSchema(generatedSchema);
- }, [initialValues]);
+ setValidationSchema(schema);
+ }, [filterData]);
- const handleSubmit = (values, { setSubmitting }) => {
+ const {
+ handleSubmit,
+ control,
+ reset,
+ formState: { errors, isDirty, isValid },
+ } = useForm({
+ defaultValues: filterData,
+ resolver: yupResolver(validationSchema),
+ mode: "onChange",
+ });
+
+ const onSubmit = (data) => {
setDrawerState(false);
- setFilterData(values);
- setSubmitting(false);
+ setFilterData(data);
};
return (
@@ -84,72 +88,64 @@ function FilterBody({ columns, drawerState, setDrawerState, user_id, page_name,
sx={{ overflowY: "hidden", display: "flex", flexDirection: "column", height: "100%", zIndex: "1300" }}
>
- {Object.keys(initialValues).length > 0 && (
+ {Object.keys(filterData).length > 0 && (
-
- {({
- values,
- handleChange,
- handleBlur,
- setFieldValue,
- errors,
- touched,
- isSubmitting,
- isValid,
- dirty,
- resetForm,
- }) => (
-
- )}
-
+
)}
diff --git a/src/core/components/DataTable/filter/FilterBodyField.jsx b/src/core/components/DataTable/filter/FilterBodyField.jsx
index 2755326..4783f13 100644
--- a/src/core/components/DataTable/filter/FilterBodyField.jsx
+++ b/src/core/components/DataTable/filter/FilterBodyField.jsx
@@ -1,11 +1,11 @@
-import { useState } from "react";
import FilterOptionList from "@/core/components/DataTable/filter/FilterOptionList";
+import CustomDatePicker from "@/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePicker";
+import CustomDatePickerRange from "@/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePickerRange";
import CustomSelect from "@/core/components/DataTable/filter/fieldsType/CustomSelect";
+import CustomSelectMultiple from "@/core/components/DataTable/filter/fieldsType/CustomSelectMultiple";
import CustomTextField from "@/core/components/DataTable/filter/fieldsType/CustomTextField";
import CustomTextFieldRange from "@/core/components/DataTable/filter/fieldsType/CustomTextFieldRange";
-import CustomDatePickerRange from "@/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePickerRange";
-import CustomDatePicker from "@/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePicker";
-import CustomSelectMultiple from "@/core/components/DataTable/filter/fieldsType/CustomSelectMultiple";
+import { useState } from "react";
const columnFilterModeOptionFa = {
equals: "برابر",
@@ -24,82 +24,71 @@ function FilterBodyField({
handleBlur,
dependencyFieldValue,
setFieldValue,
- errors,
- touched,
resetForm,
+ errors,
}) {
const [anchorEl, setAnchorEl] = useState(null);
- const defaultFilterTranslation = columnFilterModeOptionFa[filterParameters.filterFn] || filterParameters.filterFn;
+ const defaultFilterTranslation =
+ columnFilterModeOptionFa[filterParameters.filterMode] || filterParameters.filterMode;
const handleOpenFilterBox = (event) => {
setAnchorEl(event.currentTarget);
};
+
+ const renderField = () => {
+ const commonProps = {
+ column,
+ filterParameters,
+ defaultFilterTranslation,
+ handleOpenFilterBox,
+ dependencyFieldValue,
+ setFieldValue,
+ handleChange,
+ handleBlur,
+ errors,
+ };
+
+ switch (filterParameters.datatype) {
+ case "numeric":
+ if (filterParameters.filterMode === "between") {
+ return ;
+ }
+ if (filterParameters.filterMode === "equals") {
+ return ;
+ }
+ break;
+
+ case "date":
+ if (filterParameters.filterMode === "equals") {
+ return ;
+ }
+ if (filterParameters.filterMode === "between") {
+ return ;
+ }
+ break;
+
+ case "array":
+ if (filterParameters.filterMode === "equals") {
+ return ;
+ }
+ break;
+
+ default:
+ return ;
+ }
+ };
+
return (
<>
- {filterParameters.datatype === "numeric" && filterParameters.filterFn === "between" ? (
-
- ) : filterParameters.datatype === "numeric" && filterParameters.filterFn === "equals" ? (
-
- ) : filterParameters.datatype === "date" && filterParameters.filterFn === "equals" ? (
-
- ) : filterParameters.datatype === "date" && filterParameters.filterFn === "between" ? (
-
- ) : filterParameters.datatype === "array" && filterParameters.filterFn === "equals" ? (
-
- ) : (
- setFieldValue(`${column.id}.value`, e.target.value)}
- />
- )}
+ {renderField()}
{Array.isArray(column.columnFilterModeOptions) && (
{
- setFieldValue(`${column.id}.value`, filterOption[index] === "between" ? ["", ""] : "");
- setFieldValue(`${column.id}.filterFn`, filterOption[index]);
+ handleChange({
+ ...filterParameters,
+ value: filterOption[index] === "between" ? ["", ""] : "",
+ filterMode: filterOption[index],
+ });
setSelectedFilter(filterOption[index]);
setAnchorEl(null);
};
diff --git a/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePicker.jsx b/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePicker.jsx
index fe5d2e0..e207cfb 100644
--- a/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePicker.jsx
+++ b/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePicker.jsx
@@ -2,12 +2,14 @@ import React from "react";
import MuiDatePicker from "@/core/components/DataTable/filter/fieldsType/CustomDate/MuiDatePicker";
import { Typography } from "@mui/material";
-function CustomDatePicker({ column, filterParameters, defaultFilterTranslation, setFieldValue }) {
+function CustomDatePicker({ column, filterParameters, defaultFilterTranslation, handleChange }) {
return (
{
+ handleChange({ ...filterParameters, value: formattedDate });
+ }}
placeholder={column.header}
helperText={
diff --git a/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePickerRange.jsx b/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePickerRange.jsx
index 116af77..4839f77 100644
--- a/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePickerRange.jsx
+++ b/src/core/components/DataTable/filter/fieldsType/CustomDate/CustomDatePickerRange.jsx
@@ -4,13 +4,15 @@ import React from "react";
import { Box, Typography } from "@mui/material";
import MuiDatePicker from "@/core/components/DataTable/filter/fieldsType/CustomDate/MuiDatePicker";
-function CustomDatePickerRange({ column, filterParameters, defaultFilterTranslation, setFieldValue, errors, touched }) {
+function CustomDatePickerRange({ column, filterParameters, defaultFilterTranslation, handleChange, errors }) {
return (
{
+ handleChange({ ...filterParameters, value: [formattedDate, filterParameters.value[1]] });
+ }}
maxDate={filterParameters.value[1]}
placeholder={`از تاریخ`}
helperText={
@@ -22,10 +24,12 @@ function CustomDatePickerRange({ column, filterParameters, defaultFilterTranslat
{
+ handleChange({ ...filterParameters, value: [filterParameters.value[0], formattedDate] });
+ }}
minDate={filterParameters.value[0]}
placeholder={`تا تاریخ`}
- helperText={errors?.[`${column.id}`]?.value ? errors?.[`${column.id}`]?.value : null}
+ helperText={errors?.[`${column.id}`]?.value ? errors?.[`${column.id}`]?.value.message : null}
error={Boolean(errors?.[`${column.id}`]?.value)}
/>
diff --git a/src/core/components/DataTable/filter/fieldsType/CustomDate/MuiDatePicker.jsx b/src/core/components/DataTable/filter/fieldsType/CustomDate/MuiDatePicker.jsx
index 22eb5f9..9cfa8c5 100644
--- a/src/core/components/DataTable/filter/fieldsType/CustomDate/MuiDatePicker.jsx
+++ b/src/core/components/DataTable/filter/fieldsType/CustomDate/MuiDatePicker.jsx
@@ -18,6 +18,7 @@ function MuiDatePicker({ value, setFieldValue, name, minDate, maxDate, helperTex
sx={{ width: "100%" }}
id={name}
name={name}
+ closeOnSelect={true}
aria-describedby="component-helper-text"
onChange={(value) => {
const date = new Date(value);
diff --git a/src/core/components/DataTable/filter/fieldsType/CustomSelect.jsx b/src/core/components/DataTable/filter/fieldsType/CustomSelect.jsx
index 6f471ce..274a58b 100644
--- a/src/core/components/DataTable/filter/fieldsType/CustomSelect.jsx
+++ b/src/core/components/DataTable/filter/fieldsType/CustomSelect.jsx
@@ -1,9 +1,22 @@
"use client";
import { FormControl, FormHelperText, InputLabel, MenuItem, OutlinedInput, Select, Typography } from "@mui/material";
+import { useEffect, useMemo } from "react";
-function CustomSelect({ column, dependencyFieldValue, filterParameters, defaultFilterTranslation, setFieldValue }) {
- const columnSelectOption = column.columnSelectOption(dependencyFieldValue);
+function CustomSelect({ column, dependencyFieldValue, filterParameters, defaultFilterTranslation, handleChange }) {
+ const columnSelectOption = useMemo(() => {
+ return column?.columnSelectOption?.(dependencyFieldValue) || [];
+ }, [dependencyFieldValue]);
+
+ useEffect(() => {
+ const isValidValue = columnSelectOption.some((option) => option.value === filterParameters.value);
+ if (!isValidValue) {
+ handleChange({ ...filterParameters, value: "" });
+ }
+ }, [columnSelectOption, filterParameters.value, handleChange]);
+
+ const isValidValue = columnSelectOption.some((option) => option.value === filterParameters.value);
+ const selectedValue = isValidValue ? filterParameters.value : "";
return (
@@ -12,11 +25,9 @@ function CustomSelect({ column, dependencyFieldValue, filterParameters, defaultF
labelId={`label${column.id}`}
id={column.id}
name={`${column.id}.value`}
- value={filterParameters.value}
+ value={selectedValue}
input={}
- onChange={(e) => {
- setFieldValue(`${column.id}.value`, e.target.value);
- }}
+ onChange={(e) => handleChange({ ...filterParameters, value: e.target.value })}
>
{columnSelectOption.map((option) => (
diff --git a/src/core/components/DataTable/filter/fieldsType/CustomSelectMultiple.jsx b/src/core/components/DataTable/filter/fieldsType/CustomSelectMultiple.jsx
index 130f98f..22ff8aa 100644
--- a/src/core/components/DataTable/filter/fieldsType/CustomSelectMultiple.jsx
+++ b/src/core/components/DataTable/filter/fieldsType/CustomSelectMultiple.jsx
@@ -12,7 +12,7 @@ import {
Typography,
} from "@mui/material";
-function CustomSelectMultiple({ column, filterParameters, defaultFilterTranslation, setFieldValue }) {
+function CustomSelectMultiple({ column, filterParameters, defaultFilterTranslation, handleChange }) {
const columnSelectOption = column.columnSelectOption;
const getLabelForValue = (value) => {
@@ -30,9 +30,7 @@ function CustomSelectMultiple({ column, filterParameters, defaultFilterTranslati
id={column.id}
value={filterParameters.value}
multiple
- onChange={(e) => {
- setFieldValue(`${column.id}.value`, e.target.value);
- }}
+ onChange={(e) => handleChange({ ...filterParameters, value: e.target.value })}
renderValue={(selected) => (
{selected.map((value) => (
diff --git a/src/core/components/DataTable/filter/fieldsType/CustomTextField.jsx b/src/core/components/DataTable/filter/fieldsType/CustomTextField.jsx
index 05b44ce..619237a 100644
--- a/src/core/components/DataTable/filter/fieldsType/CustomTextField.jsx
+++ b/src/core/components/DataTable/filter/fieldsType/CustomTextField.jsx
@@ -3,11 +3,11 @@ import FilterListIcon from "@mui/icons-material/FilterList";
function CustomTextField({
column,
- filterParameters,
defaultFilterTranslation,
+ filterParameters,
handleOpenFilterBox,
- handleChange,
handleBlur,
+ handleChange,
}) {
return (
handleChange({ ...filterParameters, value: e.target.value })}
onBlur={handleBlur}
fullWidth
helperText={
diff --git a/src/core/components/DataTable/filter/fieldsType/CustomTextFieldRange.jsx b/src/core/components/DataTable/filter/fieldsType/CustomTextFieldRange.jsx
index fea4169..20afcbd 100644
--- a/src/core/components/DataTable/filter/fieldsType/CustomTextFieldRange.jsx
+++ b/src/core/components/DataTable/filter/fieldsType/CustomTextFieldRange.jsx
@@ -3,20 +3,21 @@ import FilterListIcon from "@mui/icons-material/FilterList";
function CustomTextFieldRange({
column,
- filterParameters,
defaultFilterTranslation,
handleOpenFilterBox,
handleChange,
+ filterParameters,
handleBlur,
errors,
- touched,
}) {
return (
+ handleChange({ ...filterParameters, value: [e.target.value, filterParameters.value[1]] })
+ }
onBlur={handleBlur}
label={از {column.header}}
value={filterParameters.value[0]}
@@ -34,10 +35,12 @@ function CustomTextFieldRange({
+ handleChange({ ...filterParameters, value: [filterParameters.value[0], e.target.value] })
+ }
onBlur={handleBlur}
- error={touched?.[`${column.id}`]?.value && Boolean(errors?.[`${column.id}`]?.value)}
- helperText={touched?.[`${column.id}`]?.value ? errors?.[`${column.id}`]?.value : null}
+ error={Boolean(errors?.[`${column.id}`]?.value)}
+ helperText={errors?.[`${column.id}`]?.value ? errors?.[`${column.id}`]?.value.message : null}
label={تا {column.header}}
value={filterParameters.value[1]}
fullWidth
diff --git a/src/core/components/LoadingHardPage.jsx b/src/core/components/LoadingHardPage.jsx
index a4da80d..89e5f17 100644
--- a/src/core/components/LoadingHardPage.jsx
+++ b/src/core/components/LoadingHardPage.jsx
@@ -1,4 +1,4 @@
-'use client'
+"use client";
import { Backdrop, Box, Stack, styled, Typography, useTheme } from "@mui/material";
import SvgLoading from "@/core/components/svgs/SvgLoading";
import SvgError from "@/core/components/svgs/SvgError";
diff --git a/src/core/components/PageLoading.jsx b/src/core/components/PageLoading.jsx
index 757d609..c5b2159 100644
--- a/src/core/components/PageLoading.jsx
+++ b/src/core/components/PageLoading.jsx
@@ -1,10 +1,12 @@
-'use client'
-import { Paper } from "@mui/material"
-import LoadingHardPage from "./LoadingHardPage"
+"use client";
+import { Paper } from "@mui/material";
+import LoadingHardPage from "./LoadingHardPage";
const PageLoading = () => {
- return
-
-
-}
-export default PageLoading
\ No newline at end of file
+ return (
+
+
+
+ );
+};
+export default PageLoading;
diff --git a/src/lib/contexts/DataTable.js b/src/lib/contexts/DataTable.js
index 3d69afc..dcadd83 100644
--- a/src/lib/contexts/DataTable.js
+++ b/src/lib/contexts/DataTable.js
@@ -29,34 +29,27 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns,
acc[column.id] = {
id: column.id,
value: storeFilter?.value || [],
- filterFn: storeFilter?.filterFn || column._filterFn,
+ filterMode: storeFilter?.filterMode || column.filterMode,
datatype: column.datatype,
};
- } else if (column._filterFn === "between") {
+ } else if (column.filterMode === "between") {
acc[column.id] = {
id: column.id,
value: storeFilter?.value || ["", ""],
- filterFn: storeFilter?.filterFn || column._filterFn,
+ filterMode: storeFilter?.filterMode || column.filterMode,
datatype: column.datatype,
};
} else {
acc[column.id] = {
id: column.id,
value: storeFilter?.value || "",
- filterFn: storeFilter?.filterFn || column._filterFn,
+ filterMode: storeFilter?.filterMode || column.filterMode,
datatype: column.datatype,
};
}
return acc;
}, {});
- setFilterData(filterValues);
- setInitFilter(filterValues);
- setSortData(settingStore?.[user_id]?.[page_name]?.[table_name]?.["sorts"] || initialSort);
- setInitSort(settingStore?.[user_id]?.[page_name]?.[table_name]?.["sorts"] || initialSort);
- setInitStates(true);
- }, [settingStore, isInitStates]);
- useEffect(() => {
const getHideValues = (columns) => {
return columns.reduce((acc, column) => {
const columnId = column.id;
@@ -74,7 +67,12 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns,
const hideValues = getHideValues(columns);
setHideData(hideValues);
setInitHide(hideValues);
- }, [settingStore, isInitStates]);
+ setFilterData(filterValues);
+ setInitFilter(filterValues);
+ setSortData(settingStore?.[user_id]?.[page_name]?.[table_name]?.["sorts"] || initialSort);
+ setInitSort(settingStore?.[user_id]?.[page_name]?.[table_name]?.["sorts"] || initialSort);
+ setInitStates(true);
+ }, [settingStore]);
useEffect(() => {
if (