From d828e0c999380e8aac2f1613920cae0f0540c868 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 19 Mar 2025 16:09:19 +0300 Subject: [PATCH] feat: phone number validation --- .../cardEditorTabs/ClientTab/ClientTab.tsx | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/modules/cardModules/cardEditorTabs/ClientTab/ClientTab.tsx b/src/modules/cardModules/cardEditorTabs/ClientTab/ClientTab.tsx index ec5d684..749062c 100644 --- a/src/modules/cardModules/cardEditorTabs/ClientTab/ClientTab.tsx +++ b/src/modules/cardModules/cardEditorTabs/ClientTab/ClientTab.tsx @@ -1,4 +1,4 @@ -import { Button, Fieldset, Group, rem, Stack, Textarea, TextInput } from "@mantine/core"; +import { Button, Fieldset, Group, Input, rem, Stack, Textarea, TextInput } from "@mantine/core"; import { useCardPageContext } from "../../../../pages/CardsPage/contexts/CardPageContext.tsx"; import { useForm } from "@mantine/form"; import { CardService, ClientSchema, ClientService } from "../../../../client"; @@ -7,6 +7,8 @@ import ClientSelect from "../../../../components/Selects/ClientSelect/ClientSele import { useEffect, useState } from "react"; import InlineButton from "../../../../components/InlineButton/InlineButton.tsx"; import { isEqual } from "lodash"; +import { IMaskInput } from "react-imask"; +import phone from "phone"; const ClientTab = () => { const { selectedCard: card, refetchCard } = useCardPageContext(); @@ -17,6 +19,16 @@ const ClientTab = () => { const form = useForm>( { initialValues, + validate: { + details: { + phoneNumber: value => + !phone(value || "", { + country: "", + strictDetection: false, + validateMobilePrefix: false, + }).isValid && "Неверно указан номер телефона", + }, + }, }, ); @@ -76,12 +88,16 @@ const ClientTab = () => { label={"Название"} value={card?.client?.name} /> - + + +