Files
nashel-frontend/.next/static/chunks/app/auth/register/page-ca42e9332396f78b.js
T

1 line
8.7 KiB
JavaScript

(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[983],{6718:(e,s,r)=>{Promise.resolve().then(r.t.bind(r,8173,23)),Promise.resolve().then(r.bind(r,4286))},4286:(e,s,r)=>{"use strict";r.d(s,{RegisterForm:()=>C});var l=r(5155),n=r(2115),a=r(9606),o=r(2679),i=r(534),t=r(1466),c=r(2792),d=r(9110),m=r(4505),x=r(6046),h=r(3312),u=r(3900),j=r(4870),p=r(9749),N=r(852),f=r(3565),g=r(7549);let v=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,l.jsx)(N.bL,{className:(0,g.cn)("grid gap-2",r),...n,ref:s})});v.displayName=N.bL.displayName;let b=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,l.jsx)(N.q7,{ref:s,className:(0,g.cn)("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),...n,children:(0,l.jsx)(N.C1,{className:"flex items-center justify-center",children:(0,l.jsx)(f.A,{className:"h-2.5 w-2.5 fill-current text-current"})})})});b.displayName=N.q7.displayName;var w=r(2928);let y=i.Ikc({role:i.k5n(["User","Newbie","Company"]),phone:i.YjP().min(10,"Номер телефона должен содержать минимум 10 цифр"),firstName:i.YjP().min(2,"Имя должно содержать минимум 2 символа").regex(/^[^0-9]*$/,"Имя не должно содержать цифры").optional(),lastName:i.YjP().min(2,"Фамилия должна содержать минимум 2 символа").regex(/^[^0-9]*$/,"Фамилия не должна содержать цифры").optional(),companyName:i.YjP().optional(),inn:i.YjP().optional(),password:i.YjP().min(6,"Пароль должен быть не менее 6 символов"),confirmPassword:i.YjP().min(6)}).refine(e=>e.password===e.confirmPassword,{message:"Пароли не совпадают",path:["confirmPassword"]}).refine(e=>"User"===e.role||"Newbie"===e.role||e.companyName&&e.companyName.length>=2,{message:"Название компании обязательно",path:["companyName"]}).refine(e=>"User"===e.role||"Newbie"===e.role||e.inn&&10===e.inn.length,{message:"ИНН должен содержать 10 цифр",path:["inn"]}).refine(e=>"User"!==e.role&&"Newbie"!==e.role||e.firstName&&e.firstName.length>=2,{message:"Имя обязательно",path:["firstName"]}).refine(e=>"User"!==e.role&&"Newbie"!==e.role||e.lastName&&e.lastName.length>=2,{message:"Фамилия обязательна",path:["lastName"]});function C(){let e=(0,x.useRouter)(),{register:s,isLoading:r}=(0,w.B)(),n=(0,a.mN)({resolver:(0,o.u)(y),defaultValues:{role:"User",phone:"",firstName:"",lastName:"",companyName:"",inn:"",password:"",confirmPassword:""}}),i=n.watch("role");async function N(r){try{let l={phone:r.phone,password:r.password,confirmPassword:r.confirmPassword,role:r.role};("User"===r.role||"Newbie"===r.role)&&(l.firstName=r.firstName,l.lastName=r.lastName),"Company"===r.role&&(r.companyName&&(l.companyName=r.companyName),r.inn&&(l.inn=r.inn)),await s(l),e.push("/auth/login")}catch(e){console.error(e),n.setError("root",{message:"Ошибка при регистрации. Возможно, номер уже занят."})}}return(0,l.jsxs)(p.Zp,{className:"w-full max-w-md mx-auto",children:[(0,l.jsxs)(p.aR,{children:[(0,l.jsx)(p.ZB,{className:"text-2xl",children:"Регистрация"}),(0,l.jsx)(p.BT,{children:"Выберите роль и создайте аккаунт"})]}),(0,l.jsx)(p.Wu,{children:(0,l.jsx)(j.lV,{...n,children:(0,l.jsxs)("form",{onSubmit:n.handleSubmit(N),className:"space-y-6",children:[(0,l.jsx)(j.zB,{control:n.control,name:"role",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{className:"space-y-3",children:[(0,l.jsx)(j.lR,{children:"Кем вы хотите зарегистрироваться?"}),(0,l.jsx)(j.MJ,{children:(0,l.jsxs)(v,{onValueChange:s.onChange,defaultValue:s.value,className:"grid grid-cols-1 gap-3",children:[(0,l.jsxs)("div",{className:"flex items-center space-x-3 rounded-md border p-4 hover:bg-muted/50 transition-colors",children:[(0,l.jsx)(b,{value:"User",id:"user"}),(0,l.jsxs)("label",{htmlFor:"user",className:"flex items-center gap-3 flex-1 cursor-pointer",children:[(0,l.jsx)("div",{className:"h-10 w-10 rounded-full bg-blue-100 flex items-center justify-center",children:(0,l.jsx)(t.A,{className:"h-5 w-5 text-blue-600"})}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("div",{className:"font-medium",children:"Пользователь"}),(0,l.jsx)("div",{className:"text-sm text-muted-foreground",children:"Ищу исполнителей для задач"})]})]})]}),(0,l.jsxs)("div",{className:"flex items-center space-x-3 rounded-md border p-4 hover:bg-muted/50 transition-colors",children:[(0,l.jsx)(b,{value:"Newbie",id:"newbie"}),(0,l.jsxs)("label",{htmlFor:"newbie",className:"flex items-center gap-3 flex-1 cursor-pointer",children:[(0,l.jsx)("div",{className:"h-10 w-10 rounded-full bg-green-100 flex items-center justify-center",children:(0,l.jsx)(c.A,{className:"h-5 w-5 text-green-600"})}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("div",{className:"font-medium",children:"Новичок-мастер"}),(0,l.jsx)("div",{className:"text-sm text-muted-foreground",children:"Начинаю работать как исполнитель"})]})]})]}),(0,l.jsxs)("div",{className:"flex items-center space-x-3 rounded-md border p-4 hover:bg-muted/50 transition-colors",children:[(0,l.jsx)(b,{value:"Company",id:"company"}),(0,l.jsxs)("label",{htmlFor:"company",className:"flex items-center gap-3 flex-1 cursor-pointer",children:[(0,l.jsx)("div",{className:"h-10 w-10 rounded-full bg-purple-100 flex items-center justify-center",children:(0,l.jsx)(d.A,{className:"h-5 w-5 text-purple-600"})}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("div",{className:"font-medium",children:"Компания"}),(0,l.jsx)("div",{className:"text-sm text-muted-foreground",children:"Юридическое лицо"})]})]})]})]})}),(0,l.jsx)(j.C5,{})]})}}),("User"===i||"Newbie"===i)&&(0,l.jsx)("div",{className:"space-y-4",children:(0,l.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,l.jsx)(j.zB,{control:n.control,name:"firstName",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{children:[(0,l.jsx)(j.lR,{children:"Имя *"}),(0,l.jsx)(j.MJ,{children:(0,l.jsx)(u.p,{placeholder:"Иван",value:s.value||"",onChange:s.onChange})}),(0,l.jsx)(j.C5,{})]})}}),(0,l.jsx)(j.zB,{control:n.control,name:"lastName",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{children:[(0,l.jsx)(j.lR,{children:"Фамилия *"}),(0,l.jsx)(j.MJ,{children:(0,l.jsx)(u.p,{placeholder:"Иванов",value:s.value||"",onChange:s.onChange})}),(0,l.jsx)(j.C5,{})]})}})]})}),"Company"===i&&(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsx)(j.zB,{control:n.control,name:"companyName",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{children:[(0,l.jsx)(j.lR,{children:"Название компании *"}),(0,l.jsx)(j.MJ,{children:(0,l.jsx)(u.p,{placeholder:"ООО 'Ромашка'",value:s.value||"",onChange:s.onChange})}),(0,l.jsx)(j.C5,{})]})}}),(0,l.jsx)(j.zB,{control:n.control,name:"inn",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{children:[(0,l.jsx)(j.lR,{children:"ИНН *"}),(0,l.jsx)(j.MJ,{children:(0,l.jsx)(u.p,{placeholder:"1234567890",maxLength:10,value:s.value||"",onChange:s.onChange})}),(0,l.jsx)(j.C5,{})]})}})]}),(0,l.jsx)(j.zB,{control:n.control,name:"phone",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{children:[(0,l.jsx)(j.lR,{children:"Номер телефона"}),(0,l.jsx)(j.MJ,{children:(0,l.jsx)(u.p,{placeholder:"+7 (999) 000-00-00",value:s.value||"",onChange:s.onChange})}),(0,l.jsx)(j.C5,{})]})}}),(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsx)(j.zB,{control:n.control,name:"password",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{children:[(0,l.jsx)(j.lR,{children:"Пароль"}),(0,l.jsx)(j.MJ,{children:(0,l.jsx)(u.p,{type:"password",placeholder:"******",value:s.value||"",onChange:s.onChange})}),(0,l.jsx)(j.C5,{})]})}}),(0,l.jsx)(j.zB,{control:n.control,name:"confirmPassword",render:e=>{let{field:s}=e;return(0,l.jsxs)(j.eI,{children:[(0,l.jsx)(j.lR,{children:"Подтвердите пароль"}),(0,l.jsx)(j.MJ,{children:(0,l.jsx)(u.p,{type:"password",placeholder:"******",value:s.value||"",onChange:s.onChange})}),(0,l.jsx)(j.C5,{})]})}})]}),n.formState.errors.root&&(0,l.jsx)("p",{className:"text-sm font-medium text-destructive",children:n.formState.errors.root.message}),(0,l.jsxs)(h.$,{type:"submit",className:"w-full bg-blue-600 hover:bg-blue-700",disabled:r,children:[r&&(0,l.jsx)(m.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Зарегистрироваться"]})]})})})]})}}},e=>{var s=s=>e(e.s=s);e.O(0,[92,273,173,634,554,510,70,441,517,358],()=>s(6718)),_N_E=e.O()}]);