diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index e2e5105..ae67ef2 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -18,8 +18,13 @@ "open_profile": "پروفایل", "edit_profile": " پروفایل", "change_password": "تغییر رمز عبور", + "equals": "برابر", "logout": "خروج" }, + "Select": { + "helper_text": "حالت فیلتر: برابر", + "menu_item": "نوع کاربر را وارد کنید" + }, "Titles": { "title_login_page": "صفحه ورود", "title_login_expert_page": "ورود کارشناس", diff --git a/src/components/dashboard/user-management/index.jsx b/src/components/dashboard/user-management/index.jsx index fc235e5..341017f 100644 --- a/src/components/dashboard/user-management/index.jsx +++ b/src/components/dashboard/user-management/index.jsx @@ -1,5 +1,5 @@ import DashboardLayouts from "@/layouts/dashboardLayouts"; -import {Box, Typography} from "@mui/material"; +import {Box, FormControl, FormHelperText, IconButton, MenuItem, Select, Stack, Typography} from "@mui/material"; import {useMemo} from "react"; import {GET_USER_MANAGEMENT} from "@/core/data/apiRoutes"; import {useTranslations} from "next-intl"; @@ -8,148 +8,133 @@ import moment from "jalali-moment"; import MuiDatePicker from "@/core/components/MuiDatePicker"; import TableToolbar from "@/components/dashboard/user-management/TableToolbar"; import TableRowActions from "./TableRowActions" +import ClearIcon from "@mui/icons-material/Clear"; function DashboardUserManagementComponent() { const t = useTranslations(); - const columns = useMemo( - () => [ - { - accessorFn: (row) => row.id, - id: "id", - header: t("UserManagement.id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.navgan_id, - id: "navgan_id", - header: t("UserManagement.navgan_id"), - enableColumnFilter: true, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.national_id, - id: "national_id", - header: t("UserManagement.national_id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.phone_number, - id: "phone_number", - header: t("UserManagement.phone_number"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => - moment(row.created_at).locale("fa").format("HH:mm | yyyy/MM/DD"), - id: "created_at", - header: t("UserManagement.created_at"), - enableColumnFilter: true, - datatype: "date", - filterFn: "lessThan", - columnFilterModeOptions: ["lessThan", "greaterThan"], - Cell: ({renderedCellValue}) => { - return {renderedCellValue}; - }, - Header: ({column}) => <>{column.columnDef.header}, - Filter: ({column}) => { - return ( - - ); - }, - }, - { - accessorFn: (row) => - moment(row.updated_at).locale("fa").format("HH:mm | yyyy/MM/DD"), - id: "updated_at", - header: t("UserManagement.updated_at"), - enableColumnFilter: false, - datatype: "numeric", - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.type_name, - id: "type_name", - header: t("UserManagement.type_name"), - enableColumnFilter: false, - datatype: "numeric", - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - ], - [] - ); - return ( - - - - - - ); + const columns = useMemo(() => [{ + accessorFn: (row) => row.id, + id: "id", + header: t("UserManagement.id"), + enableColumnFilter: true, + datatype: "numeric", + filterFn: "equals", + columnFilterModeOptions: ["equals", "notEquals", "contains", "lessThan", "greaterThan", "between",], + Cell: ({renderedCellValue}) => ({renderedCellValue}), + }, { + accessorFn: (row) => row.navgan_id, + id: "navgan_id", + header: t("UserManagement.navgan_id"), + enableColumnFilter: true, + datatype: "text", + filterFn: "contains", + columnFilterModeOptions: ["contains", "equals", "notEquals"], + Cell: ({renderedCellValue}) => ({renderedCellValue}), + }, { + accessorFn: (row) => row.national_id, + id: "national_id", + header: t("UserManagement.national_id"), + enableColumnFilter: true, + datatype: "numeric", + filterFn: "equals", + columnFilterModeOptions: ["equals", "notEquals", "contains", "lessThan", "greaterThan", "between",], + Cell: ({renderedCellValue}) => ({renderedCellValue}), + }, { + accessorFn: (row) => row.phone_number, + id: "phone_number", + header: t("UserManagement.phone_number"), + enableColumnFilter: true, + datatype: "numeric", + filterFn: "equals", + columnFilterModeOptions: ["equals", "notEquals", "contains", "lessThan", "greaterThan", "between",], + Cell: ({renderedCellValue}) => ({renderedCellValue}), + }, { + accessorFn: (row) => moment(row.created_at).locale("fa").format("HH:mm | yyyy/MM/DD"), + id: "created_at", + header: t("UserManagement.created_at"), + enableColumnFilter: true, + datatype: "date", + filterFn: "lessThan", + columnFilterModeOptions: ["lessThan", "greaterThan"], + Cell: ({renderedCellValue}) => { + return {renderedCellValue}; + }, + Header: ({column}) => <>{column.columnDef.header}, + Filter: ({column}) => { + return (); + }, + }, { + accessorFn: (row) => moment(row.updated_at).locale("fa").format("HH:mm | yyyy/MM/DD"), + id: "updated_at", + header: t("UserManagement.updated_at"), + enableColumnFilter: false, + datatype: "numeric", + Cell: ({renderedCellValue}) => ({renderedCellValue}), + }, { + accessorFn: (row) => row.type_name, + id: "type_id", + header: t("UserManagement.type_name"), + enableColumnFilter: true, + datatype: "numeric", + filterFn: "equals", + columnFilterModeOptions: ["equals"], + Cell: ({renderedCellValue}) => ({renderedCellValue}), + Header: ({column}) => <>{column.columnDef.header}, + Filter: ({column}) => { + return ( + + + {t("Select.helper_text")} + + { + column.setFilterValue(null); + }} + sx={{ + color: column.getFilterValue() ? "rgba(0, 0, 0, 0.54)" : "#bfbfbf", + height: 20 + }} + > + + + ) + } + },], []); + return ( + + + + ); } export default DashboardUserManagementComponent;