From 5ceb5da3c206f11d86a49aca70805271e350ff30 Mon Sep 17 00:00:00 2001 From: Estifo77 <139631617+Estifo77@users.noreply.github.com> Date: Wed, 29 Jul 2026 10:07:49 +0300 Subject: [PATCH] fixes --- libs/auth/src/lib/pages/SignupPage.tsx | 96 ++++++++++++++------------ libs/auth/src/lib/types/auth.types.ts | 1 + 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/libs/auth/src/lib/pages/SignupPage.tsx b/libs/auth/src/lib/pages/SignupPage.tsx index 18d76404a..b5fb2348d 100644 --- a/libs/auth/src/lib/pages/SignupPage.tsx +++ b/libs/auth/src/lib/pages/SignupPage.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useState } from "react"; import { Alert, Anchor, @@ -12,7 +12,7 @@ import { Text, TextInput, Title, -} from '@mantine/core'; +} from "@mantine/core"; import { IconArrowRight, IconAt, @@ -20,42 +20,47 @@ import { IconLock, IconMail, IconUser, -} from '@tabler/icons-react'; -import { Controller, useForm } from 'react-hook-form'; -import { zodResolver } from '@hookform/resolvers/zod'; -import { z } from 'zod'; -import { useNavigate, Link } from 'react-router-dom'; -import { useDispatch } from 'react-redux'; -import { useApiMutation } from '@ema-platform/api'; -import { useErrorHandler } from '@ema-platform/ui'; -import { AuthShell } from '../components/AuthShell'; -import { loginSuccess, setUser } from '../store/auth.slice'; -import type { AuthUser } from '../types/auth.types'; -import { useAuthConfig } from '../AuthConfig'; +} from "@tabler/icons-react"; +import { Controller, useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { z } from "zod"; +import { useNavigate, Link } from "react-router-dom"; +import { useDispatch } from "react-redux"; +import { useApiMutation } from "@ema-platform/api"; +// eslint-disable-next-line @nx/enforce-module-boundaries +import { useErrorHandler } from "@ema-platform/ui"; +import { AuthShell } from "../components/AuthShell"; +import { loginSuccess, setUser } from "../store/auth.slice"; +import type { AuthUser } from "../types/auth.types"; +import { useAuthConfig } from "../AuthConfig"; const USER_TYPE_OPTIONS = [ - { value: 'credit', label: 'Credit' }, - { value: 'logistics', label: 'Logistics' }, - { value: 'registration', label: 'Registration' }, - { value: 'transfer', label: 'Transfer' }, + { value: "cadit", label: "Cadit" }, + { value: "logistics", label: "Logistics" }, + { value: "registration", label: "Registration" }, + { value: "transfer", label: "Transfer" }, ]; const schema = z .object({ email: z.string().email(), - username: z.string().min(3, { message: 'Username must be at least 3 characters' }), - phoneNumber: z.string().min(1, { message: 'Phone number is required' }), - userType: z.enum(['credit', 'logistics', 'registration', 'transfer'], { - message: 'User type is required', + username: z + .string() + .min(3, { message: "Username must be at least 3 characters" }), + phoneNumber: z.string().min(1, { message: "Phone number is required" }), + userType: z.enum(["credit", "logistics", "registration", "transfer"], { + message: "User type is required", }), - nameEn: z.string().min(1, { message: 'Name (English) is required' }), + nameEn: z.string().min(1, { message: "Name (English) is required" }), nameAm: z.string().optional(), - password: z.string().min(8, { message: 'Password must be at least 8 characters' }), - confirmPassword: z.string().min(8, { message: 'Confirm your password' }), + password: z + .string() + .min(8, { message: "Password must be at least 8 characters" }), + confirmPassword: z.string().min(8, { message: "Confirm your password" }), }) .refine((data) => data.password === data.confirmPassword, { - message: 'Passwords do not match', - path: ['confirmPassword'], + message: "Passwords do not match", + path: ["confirmPassword"], }); type FormValues = z.infer; @@ -103,14 +108,14 @@ export function SignupPage() { username: values.username, phoneNumber: values.phoneNumber, userType: values.userType, - name: { en: values.nameEn, am: values.nameAm ?? '' }, + name: { en: values.nameEn, am: values.nameAm ?? "" }, password: values.password, confirmPassword: values.confirmPassword, }; const data = await signupTrigger({ - url: '/auth/signup-with-pwd', - method: 'POST', + url: "/auth/signup-with-pwd", + method: "POST", body: payload, }).unwrap(); @@ -122,13 +127,13 @@ export function SignupPage() { }), ); - const me = await meTrigger({ url: '/auth/me', method: 'GET' }).unwrap(); + const me = await meTrigger({ url: "/auth/me", method: "GET" }).unwrap(); dispatch(setUser(me)); if (data.isPhoneNumberVerified) { - navigate('/profile-setup'); + navigate("/profile-setup"); } else { - navigate('/otp-verify', { + navigate("/otp-verify", { state: { email: values.email, phoneNumber: values.phoneNumber, @@ -157,7 +162,12 @@ export function SignupPage() { {serverError && ( - setServerError(null)}> + setServerError(null)} + > {serverError} )} @@ -170,14 +180,14 @@ export function SignupPage() { placeholder="Abebe Bekele" leftSection={} error={errors.nameEn?.message} - {...register('nameEn')} + {...register("nameEn")} /> } error={errors.nameAm?.message} - {...register('nameAm')} + {...register("nameAm")} /> @@ -187,14 +197,14 @@ export function SignupPage() { placeholder="you@example.com" leftSection={} error={errors.email?.message} - {...register('email')} + {...register("email")} /> } error={errors.username?.message} - {...register('username')} + {...register("username")} /> @@ -217,7 +227,7 @@ export function SignupPage() { placeholder="+251 911 234 567" leftSection={} error={errors.phoneNumber?.message} - {...register('phoneNumber')} + {...register("phoneNumber")} /> @@ -226,14 +236,14 @@ export function SignupPage() { placeholder="At least 8 characters" leftSection={} error={errors.password?.message} - {...register('password')} + {...register("password")} /> } error={errors.confirmPassword?.message} - {...register('confirmPassword')} + {...register("confirmPassword")} /> @@ -243,7 +253,7 @@ export function SignupPage() { onChange={(e) => setAgreed(e.currentTarget.checked)} label={ - I agree to the{' '} + I agree to the{" "} - Already have an account?{' '} + Already have an account?{" "} Sign in diff --git a/libs/auth/src/lib/types/auth.types.ts b/libs/auth/src/lib/types/auth.types.ts index 9c7aec3ea..b6babe272 100644 --- a/libs/auth/src/lib/types/auth.types.ts +++ b/libs/auth/src/lib/types/auth.types.ts @@ -13,6 +13,7 @@ export interface AuthUser { hasFinishedRegistration: boolean; hasFinishedDMSOnboarding: boolean; isPhoneNumberVerified: boolean; + userType: string; } export interface AuthState {