From e8c57729be8c861c9c32e365e555664cc8eae72a Mon Sep 17 00:00:00 2001 From: smanylov Date: Tue, 3 Feb 2026 17:36:09 +0700 Subject: [PATCH] revert changes --- src/app/actions/action.ts | 1 - src/app/actions/auth.ts | 16 -- src/app/actions/definitions.ts | 27 ++- src/app/lib/validation-config-parser.ts | 4 +- src/app/styles/payment-container.scss | 1 - src/app/ui/forms/register-form.tsx | 2 +- src/app/ui/header/userMenuButton.tsx | 3 +- src/app/ui/payment/payment-tab-tariffs.tsx | 177 +++++++++++------- src/app/ui/payment/user-usage.tsx | 33 +--- .../ui/settings/personal-data-settings.tsx | 62 +----- 10 files changed, 145 insertions(+), 181 deletions(-) diff --git a/src/app/actions/action.ts b/src/app/actions/action.ts index 73898a3..5074f5e 100644 --- a/src/app/actions/action.ts +++ b/src/app/actions/action.ts @@ -1,5 +1,4 @@ 'use server' - import { getSessionData, deleteSession } from '@/app/actions/session'; import { testUserData, API_BASE_URL } from '@/app/actions/definitions'; import { redirect } from 'next/navigation'; diff --git a/src/app/actions/auth.ts b/src/app/actions/auth.ts index 7e1a595..fd1b6e4 100644 --- a/src/app/actions/auth.ts +++ b/src/app/actions/auth.ts @@ -170,8 +170,6 @@ export async function registration( const validatedFields = SignupFormSchema.safeParse(dataToValidate); - console.log(`account-type ${accountType}`) - if (!validatedFields.success) { const errors: Record = {} JSON.parse(validatedFields.error.message).forEach((obj: { @@ -199,19 +197,6 @@ export async function registration( }; } - /* - return { - previousState: { - fullName, - email, - password, - confirm_password, - phone, - agree, - ...(accountType === 'b2b' && { companyName }) - } - }; */ - try { const { fullName, email, password, phone } = validatedFields.data; const response = await fetch(`${API_BASE_URL}/api/v1/data`, { @@ -243,7 +228,6 @@ export async function registration( if (parsed.message_desc === 'Operation successful') { await createSession(parsed.message_body.token, email as string); - console.log('succes registration'); } else { throw parsed; } diff --git a/src/app/actions/definitions.ts b/src/app/actions/definitions.ts index 98bedeb..51e9662 100644 --- a/src/app/actions/definitions.ts +++ b/src/app/actions/definitions.ts @@ -35,6 +35,9 @@ interface ValidationConfig { const defaultConfig = validationConfig as ValidationConfig; +let cachedSignupSchema: any = null; +let schemaPromise: Promise | null = null; + async function loadConfigFromBackend(accountType?: 'b2b' | 'b2c'): Promise { try { const response = await fetch('/api/validation-config'); @@ -48,16 +51,22 @@ async function loadConfigFromBackend(accountType?: 'b2b' | 'b2c'): Promise } export async function getSignupFormSchema(schemaType?: 'b2b' | 'b2c' | 'resetPassword') { - let schemaPromise: Promise | null = null; + if (cachedSignupSchema) { + return cachedSignupSchema; + } - schemaPromise = (async () => { - const config = await loadConfigFromBackend(); - if (schemaType === 'resetPassword') { - return createValidationSchemaForPssword(config); - } else { - return createValidationSchema(config, schemaType); - } - })(); + if (!schemaPromise) { + schemaPromise = (async () => { + const config = await loadConfigFromBackend(); + if (schemaType === 'resetPassword') { + cachedSignupSchema = createValidationSchemaForPssword(config); + } else { + cachedSignupSchema = createValidationSchema(config, schemaType); + } + + return cachedSignupSchema; + })(); + } return await schemaPromise; } diff --git a/src/app/lib/validation-config-parser.ts b/src/app/lib/validation-config-parser.ts index 4e1eb44..d3a3825 100644 --- a/src/app/lib/validation-config-parser.ts +++ b/src/app/lib/validation-config-parser.ts @@ -38,8 +38,8 @@ export function createValidationSchema(config: ValidationConfig, accountType?: ' .trim(); } - // companyName - if (config.companyName && accountType === 'b2b') { + // fullName + if (config.companyName && accountType !== 'b2c') { schema.companyName = z .string() .trim() diff --git a/src/app/styles/payment-container.scss b/src/app/styles/payment-container.scss index 58e220c..ef88cb8 100644 --- a/src/app/styles/payment-container.scss +++ b/src/app/styles/payment-container.scss @@ -214,7 +214,6 @@ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; overflow: visible; - max-width: 350px; .plan-header { text-align: center; diff --git a/src/app/ui/forms/register-form.tsx b/src/app/ui/forms/register-form.tsx index 67a0d31..b818b42 100644 --- a/src/app/ui/forms/register-form.tsx +++ b/src/app/ui/forms/register-form.tsx @@ -84,7 +84,7 @@ export default function RegisterForm() { if (fieldName === 'phone') { return schema.safeParse(value.replace(/[-\(\)\s]/g, '')); } - if (fieldName === 'companyName') { + if (fieldName === 'companyName' && accountType === 'b2c') { return { success: true, data: value }; } return schema.safeParse(value); diff --git a/src/app/ui/header/userMenuButton.tsx b/src/app/ui/header/userMenuButton.tsx index 7d2a03a..f813a44 100644 --- a/src/app/ui/header/userMenuButton.tsx +++ b/src/app/ui/header/userMenuButton.tsx @@ -22,7 +22,8 @@ export default function UserMenuButton() { queryFn: () => { return getUserData(); } - }); + }) + useClickOutside( menuRef, diff --git a/src/app/ui/payment/payment-tab-tariffs.tsx b/src/app/ui/payment/payment-tab-tariffs.tsx index e400b12..2dfd7dc 100644 --- a/src/app/ui/payment/payment-tab-tariffs.tsx +++ b/src/app/ui/payment/payment-tab-tariffs.tsx @@ -1,26 +1,7 @@ -'use client' - -import { useEffect } from 'react'; -import { getUserData } from '@/app/actions/action'; -import { useQuery } from '@tanstack/react-query'; -import { convertBytes } from '@/app/lib/convertBytes'; - export default function PaymentTabTariffs() { - const { - data: userData, - isLoading, - isError, - error - } = useQuery({ - queryKey: ['userData'], - queryFn: () => { - return getUserData(); - } - }); - return (
-
+
- - {userData.tariffs?.map(((item: { - id: number, - name: string, - price: number, - tokens: number, - maxFilesCount: number, - diskSize: number - }) => { - return ( -
-
-
🚀
-

- {item.name} -

-
- {item.price} -
-
в месяц
-
- {item.tokens} токенов включено
-
-
    -
  • - - {item.maxFilesCount} файлов в месяц -
  • -
  • - - {convertBytes(item.diskSize)} хранилища -
  • -
  • - - Базовые модули защиты -
  • -
  • - - Поддержка 24/7 -
  • -
  • - - API доступ -
  • -
-
- ) - }))} +
+
+
🚀
+

СТАРТ

+
900₽
+
в месяц
+
100 токенов включено
+
+
    +
  • + + 100 файлов в месяц +
  • +
  • + + 1 ГБ хранилища +
  • +
  • + + До 10 МБ на файл +
  • +
  • + + Базовые модули защиты +
  • +
  • + + Поддержка 24/7 +
  • +
  • + + API доступ +
  • +
+
+
+
+
🚀
+

ПРЕМИУМ

+
3500₽
+
в месяц
+
100 токенов включено
+
+
    +
  • + + 100 файлов в месяц +
  • +
  • + + 1 ГБ хранилища +
  • +
  • + + До 10 МБ на файл +
  • +
  • + + Базовые модули защиты +
  • +
  • + + Поддержка 24/7 +
  • +
  • + + API доступ +
  • +
+
+
+
+
🚀
+

ПРОФИ

+
9500₽
+
в месяц
+
100 токенов включено
+
+
    +
  • + + 100 файлов в месяц +
  • +
  • + + 1 ГБ хранилища +
  • +
  • + + До 10 МБ на файл +
  • +
  • + + Базовые модули защиты +
  • +
  • + + Поддержка 24/7 +
  • +
  • + + API доступ +
  • +
+
) diff --git a/src/app/ui/payment/user-usage.tsx b/src/app/ui/payment/user-usage.tsx index 4e22e38..0669b1c 100644 --- a/src/app/ui/payment/user-usage.tsx +++ b/src/app/ui/payment/user-usage.tsx @@ -1,47 +1,28 @@ -'use client' - -import { getUserData } from '@/app/actions/action'; -import { useQuery } from '@tanstack/react-query'; -import { useEffect } from 'react'; -import {convertBytes} from '@/app/lib/convertBytes'; - export default function UserUsage() { - const { - data: userData, - isLoading, - isError, - error - } = useQuery({ - queryKey: ['userData'], - queryFn: () => { - return getUserData(); - } - }); - return (

- Ваше использование + 📊 Ваше использование

-
0 / {userData?.tariffInfo?.tariff?.maxFilesCount}
+
0 / 2,000
Файлов в месяц
-
0 / {convertBytes(userData?.tariffInfo?.tariff?.diskSize)}
+
0 / 20 ГБ
Объём хранилища
@@ -51,9 +32,7 @@ export default function UserUsage() {
Токенов на балансе
-
- {userData?.tariffInfo?.tariff?.name} -
+
ПРОФИ
Текущий план
diff --git a/src/app/ui/settings/personal-data-settings.tsx b/src/app/ui/settings/personal-data-settings.tsx index c8ed0ed..02e6993 100644 --- a/src/app/ui/settings/personal-data-settings.tsx +++ b/src/app/ui/settings/personal-data-settings.tsx @@ -1,9 +1,7 @@ 'use client' import { useTranslations } from 'next-intl'; -import { useActionState, useState, useEffect } from 'react'; -import { getUserData } from '@/app/actions/action'; -import { useQuery } from '@tanstack/react-query'; +import { useActionState, useState } from 'react' export default function PersonalDataSettings() { const [errorMessage, formAction, isPending] = useActionState( @@ -13,23 +11,6 @@ export default function PersonalDataSettings() { undefined ); - const { - data: userData, - isLoading, - isError, - error - } = useQuery({ - queryKey: ['userData'], - queryFn: () => { - return getUserData(); - } - }); - - useEffect(() => { - console.log('show => userData'); - console.log(userData); - }, []) - const [selectedValue, setSelectedValue] = useState('male'); const t = useTranslations('Global'); @@ -45,37 +26,19 @@ export default function PersonalDataSettings() { - + +
+
+ +
- {userData.company && ( -
- - -
- )}
- + {t('email-cant-change')} @@ -84,12 +47,7 @@ export default function PersonalDataSettings() { - +