From 20616d9e81efef41b55e09f784fbe7e81986e6dd Mon Sep 17 00:00:00 2001 From: AlexSserb Date: Fri, 22 Nov 2024 15:14:18 +0400 Subject: [PATCH] feat: patronymic and passport data for user --- src/client/models/UserCreate.ts | 2 + src/client/models/UserSchema.ts | 2 + src/client/models/UserUpdate.ts | 2 + .../components/UsersTable/columns.tsx | 8 +- .../modals/UserFormModal/UserFormModal.tsx | 123 ++++++++++-------- 5 files changed, 82 insertions(+), 55 deletions(-) diff --git a/src/client/models/UserCreate.ts b/src/client/models/UserCreate.ts index 9d833a3..c101c25 100644 --- a/src/client/models/UserCreate.ts +++ b/src/client/models/UserCreate.ts @@ -8,7 +8,9 @@ export type UserCreate = { phoneNumber?: (string | null); firstName: string; secondName: string; + patronymic: string; comment: string; + passportData?: (string | null); isAdmin: boolean; isBlocked: boolean; isDeleted: boolean; diff --git a/src/client/models/UserSchema.ts b/src/client/models/UserSchema.ts index 7a5c1cc..7753120 100644 --- a/src/client/models/UserSchema.ts +++ b/src/client/models/UserSchema.ts @@ -10,7 +10,9 @@ export type UserSchema = { phoneNumber?: (string | null); firstName: string; secondName: string; + patronymic: string; comment: string; + passportData?: (string | null); isAdmin: boolean; isBlocked: boolean; isDeleted: boolean; diff --git a/src/client/models/UserUpdate.ts b/src/client/models/UserUpdate.ts index 9008db0..4c66f90 100644 --- a/src/client/models/UserUpdate.ts +++ b/src/client/models/UserUpdate.ts @@ -8,7 +8,9 @@ export type UserUpdate = { phoneNumber?: (string | null); firstName: string; secondName: string; + patronymic: string; comment: string; + passportData?: (string | null); isAdmin: boolean; isBlocked: boolean; isDeleted: boolean; diff --git a/src/pages/AdminPage/components/UsersTable/columns.tsx b/src/pages/AdminPage/components/UsersTable/columns.tsx index e0fda86..681711b 100644 --- a/src/pages/AdminPage/components/UsersTable/columns.tsx +++ b/src/pages/AdminPage/components/UsersTable/columns.tsx @@ -9,12 +9,16 @@ export const useUsersTableColumns = () => { { header: "ФИО", Cell: ({ row }) => - `${row.original.firstName} ${row.original.secondName}`, + `${row.original.secondName} ${row.original.firstName} ${row.original.patronymic}`, }, { accessorKey: "phoneNumber", header: "Номер телефона", }, + { + accessorKey: "passportData", + header: "Серия и номер паспорта" + }, { accessorKey: "role.name", header: "Роль", @@ -36,12 +40,14 @@ export const useUsersTableColumns = () => { header: "Администратор", Cell: ({ row }) => row.original.isAdmin ? : , + size: 10, }, { accessorKey: "isBlocked", header: "Заблокирован", Cell: ({ row }) => row.original.isBlocked ? : , + size: 10, }, ], [] diff --git a/src/pages/AdminPage/modals/UserFormModal/UserFormModal.tsx b/src/pages/AdminPage/modals/UserFormModal/UserFormModal.tsx index 10bc9b3..e64b213 100644 --- a/src/pages/AdminPage/modals/UserFormModal/UserFormModal.tsx +++ b/src/pages/AdminPage/modals/UserFormModal/UserFormModal.tsx @@ -1,17 +1,8 @@ import { ContextModalProps } from "@mantine/modals"; -import BaseFormModal, { - CreateEditFormProps, -} from "../../../ClientsPage/modals/BaseFormModal/BaseFormModal.tsx"; +import BaseFormModal, { CreateEditFormProps } from "../../../ClientsPage/modals/BaseFormModal/BaseFormModal.tsx"; import { UserSchema } from "../../../../client"; import { useForm } from "@mantine/form"; -import { - Checkbox, - Fieldset, - Input, - Stack, - Textarea, - TextInput, -} from "@mantine/core"; +import { Checkbox, Fieldset, Input, Stack, Textarea, TextInput } from "@mantine/core"; import RoleSelect from "../../components/RoleSelect/RoleSelect.tsx"; import PositionSelect from "../../components/PositionSelect/PositionSelect.tsx"; import { UserRoleEnum } from "../../../../shared/enums/UserRole.ts"; @@ -22,20 +13,20 @@ import PayRateSelect from "../../../../components/Selects/PayRateSelect/PayRateS type Props = CreateEditFormProps; const UserFormModal = ({ - context, - id, - innerProps, -}: ContextModalProps) => { + context, + id, + innerProps, + }: ContextModalProps) => { const isEditing = "element" in innerProps; const initialValues = isEditing ? innerProps.element : { - isAdmin: false, - isBlocked: false, - isDeleted: false, - comment: "", - roleKey: UserRoleEnum.USER, - }; + isAdmin: false, + isBlocked: false, + isDeleted: false, + comment: "", + roleKey: UserRoleEnum.USER, + }; const form = useForm>({ initialValues: initialValues, @@ -64,20 +55,6 @@ const UserFormModal = ({ <>
- - form - .getInputProps("firstName") - .onChange( - capitalize( - event.target.value - ).trim() - ) - } - /> + + form + .getInputProps("firstName") + .onChange( + capitalize( + event.target.value, + ).trim(), + ) + } + /> + + form + .getInputProps("patronymic") + .onChange( + capitalize( + event.target.value, + ).trim(), ) } /> @@ -102,6 +107,16 @@ const UserFormModal = ({ {...form.getInputProps("phoneNumber")} /> + + +
@@ -113,23 +128,23 @@ const UserFormModal = ({ /> {form.values.role?.key === UserRoleEnum.EMPLOYEE && ( - <> - - - - )} + <> + + + + )}