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