From b44c52eed6cf0786f50367fae46803079254070a Mon Sep 17 00:00:00 2001 From: inmake Date: Thu, 3 Apr 2025 17:58:09 +0500 Subject: [PATCH] upd --- client/src/components/Input.tsx | 37 +++++++++++++++---- client/src/components/Schedule.tsx | 12 +++--- client/src/components/Select.tsx | 2 +- .../src/components/modals/AddManagerModal.tsx | 12 +++--- client/src/components/modals/CompanyModal.tsx | 4 +- .../components/modals/CreateBuildModal.tsx | 8 ++-- .../components/modals/CreateCompanyModal.tsx | 12 +++--- .../components/modals/CreateScheduleModal.tsx | 4 +- .../modals/CreateScheduledSessionModal.tsx | 8 ++-- .../src/components/modals/CreateUserModal.tsx | 16 ++++---- .../src/components/modals/EditUserModal.tsx | 4 +- .../src/components/modals/SettingsModal.tsx | 4 +- client/src/pages/LoginPage.tsx | 6 ++- client/src/pages/ResetPasswordConfirmPage.tsx | 2 +- client/src/pages/ResetPasswordPage.tsx | 4 +- server/src/models/User.ts | 2 + server/src/routes/login.ts | 7 +++- 17 files changed, 91 insertions(+), 53 deletions(-) diff --git a/client/src/components/Input.tsx b/client/src/components/Input.tsx index 600e399..7d115c1 100644 --- a/client/src/components/Input.tsx +++ b/client/src/components/Input.tsx @@ -1,6 +1,6 @@ /* eslint-disable react-hooks/exhaustive-deps */ import { useMask } from "@react-input/mask"; - +import { useState } from "react"; interface InputProps { type?: "text" | "email" | "password" | "time" | "tel" | "number"; value?: string; @@ -10,8 +10,10 @@ interface InputProps { readOnly?: boolean; className?: string; autoComplete?: string; - handleChange?: (value: string) => void; - handleFocus?: () => void; + lowercase?: boolean; + trim?: boolean; + onChange?: (value: string) => void; + onFocus?: () => void; } function Input({ @@ -23,14 +25,33 @@ function Input({ readOnly, className, autoComplete, - handleChange, - handleFocus, + onChange, + onFocus, + lowercase, + trim, }: InputProps) { + const [_value, setValue] = useState(value); + const inputRef = useMask({ mask: "+7 (___) ___-__-__", replacement: { _: /\d/ }, }); + const handleChange = (e: React.ChangeEvent) => { + let value = e.target.value; + + if (lowercase) { + value = value.toLowerCase(); + } + + if (trim) { + value = value.trim(); + } + + setValue(value); + onChange?.(value); + }; + return ( handleChange && handleChange(e.target.value)} - onFocus={handleFocus} + value={_value} + onChange={handleChange} + onFocus={onFocus} className={`px-3 py-[9px] outline-none rounded-lg ring-1 ring-[#DAE0E5] focus:ring-[#49A1F5] ring-inset transition-all text-sm ${className}`} /> ); diff --git a/client/src/components/Schedule.tsx b/client/src/components/Schedule.tsx index 8dd948f..7afbb59 100644 --- a/client/src/components/Schedule.tsx +++ b/client/src/components/Schedule.tsx @@ -318,7 +318,7 @@ function Schedule({ selectedDay, slots, events }: Props) { setStartTime(value)} + onChange={(value) => setStartTime(value)} className="w-full" /> @@ -328,7 +328,7 @@ function Schedule({ selectedDay, slots, events }: Props) { setEndTime(value)} + onChange={(value) => setEndTime(value)} className="w-full" /> @@ -344,10 +344,12 @@ function Schedule({ selectedDay, slots, events }: Props) {
@@ -368,7 +370,7 @@ function Schedule({ selectedDay, slots, events }: Props) { setName(value)} + onChange={(value) => setName(value)} />
diff --git a/client/src/components/Select.tsx b/client/src/components/Select.tsx index 29f0cc0..c84eaaa 100644 --- a/client/src/components/Select.tsx +++ b/client/src/components/Select.tsx @@ -32,7 +32,7 @@ function Select({ defaultValue, options, handleChange }: SelectProps) {
setIsShow(true)} + onFocus={() => setIsShow(true)} value={options?.find((option) => option.value === value).text} className="w-full cursor-pointer" /> diff --git a/client/src/components/modals/AddManagerModal.tsx b/client/src/components/modals/AddManagerModal.tsx index fd89309..d6d93f8 100644 --- a/client/src/components/modals/AddManagerModal.tsx +++ b/client/src/components/modals/AddManagerModal.tsx @@ -107,21 +107,23 @@ function AddManagerModal() {
diff --git a/client/src/components/modals/CompanyModal.tsx b/client/src/components/modals/CompanyModal.tsx index 1285e87..cf791c2 100644 --- a/client/src/components/modals/CompanyModal.tsx +++ b/client/src/components/modals/CompanyModal.tsx @@ -146,7 +146,7 @@ function CompanyModal() { setStartTime(value)} + onChange={(value) => setStartTime(value)} />

-

@@ -155,7 +155,7 @@ function CompanyModal() { setEndTime(value)} + onChange={(value) => setEndTime(value)} />
diff --git a/client/src/components/modals/CreateBuildModal.tsx b/client/src/components/modals/CreateBuildModal.tsx index 4ff83cd..0db769b 100644 --- a/client/src/components/modals/CreateBuildModal.tsx +++ b/client/src/components/modals/CreateBuildModal.tsx @@ -50,13 +50,14 @@ function CreateBuildModal({ companyId }: Props) {

Создание ЖК

setName(value)} - autoFocus - required + onChange={(value) => setName(value)} /> setBuild(option)} - required />
@@ -170,7 +170,7 @@ function CreateScheduleModal() { diff --git a/client/src/components/modals/CreateScheduledSessionModal.tsx b/client/src/components/modals/CreateScheduledSessionModal.tsx index f5b97de..15a77ce 100644 --- a/client/src/components/modals/CreateScheduledSessionModal.tsx +++ b/client/src/components/modals/CreateScheduledSessionModal.tsx @@ -106,10 +106,12 @@ function CreateScheduledSessionModal({ buildId, startAt, duration }: Props) {
@@ -118,7 +120,7 @@ function CreateScheduledSessionModal({ buildId, startAt, duration }: Props) { type="tel" className="h-10" value={phone} - handleChange={(value) => setPhone(value)} + onChange={(value) => setPhone(value)} />
@@ -126,7 +128,7 @@ function CreateScheduledSessionModal({ buildId, startAt, duration }: Props) { setName(value)} + onChange={(value) => setName(value)} />
diff --git a/client/src/components/modals/CreateUserModal.tsx b/client/src/components/modals/CreateUserModal.tsx index c48396e..40cf17a 100644 --- a/client/src/components/modals/CreateUserModal.tsx +++ b/client/src/components/modals/CreateUserModal.tsx @@ -97,25 +97,27 @@ function CreateUserModal({ companyId }: Props) {

Новый пользователь

setName(value)} - autoFocus - required + onChange={(value) => setName(value)} /> setUsername(value)} - required + onChange={(value) => setUsername(value)} /> setPassword(value)} - required + onChange={(value) => setPassword(value)} /> setUsername(value)} + onChange={(value) => setUsername(value)} required /> setUsername(value)} + onChange={(value) => setUsername(value)} />
@@ -67,7 +69,7 @@ function LoginPage() { type="password" placeholder="********" required - handleChange={(value) => setPassword(value)} + onChange={(value) => setPassword(value)} />