Files
nashel-frontend/.next/static/chunks/app/dashboard/become-performer/page-97c57d9ee252b051.js
T

1 line
28 KiB
JavaScript

(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[824],{8436:(e,t,r)=>{Promise.resolve().then(r.bind(r,235))},8867:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(7401).A)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},1719:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(7401).A)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},1902:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(7401).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},6889:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(7401).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},1956:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let s=r(306)._(r(580));function a(e,t){var r;let a={};"function"==typeof e&&(a.loader=e);let n={...a,...t};return(0,s.default)({...n,modules:null==(r=n.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2208:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return a}});let s=r(3719);function a(e){let{reason:t,children:r}=e;if("undefined"==typeof window)throw new s.BailoutToCSRError(t);return r}},580:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let s=r(5155),a=r(2115),n=r(2208),l=r(9214);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},d=function(e){let t={...o,...e},r=(0,a.lazy)(()=>t.loader().then(i)),d=t.loading;function c(e){let i=d?(0,s.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?a.Suspense:a.Fragment,u=t.ssr?(0,s.jsxs)(s.Fragment,{children:["undefined"==typeof window?(0,s.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,s.jsx)(r,{...e})]}):(0,s.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,s.jsx)(r,{...e})});return(0,s.jsx)(c,{...o?{fallback:i}:{},children:u})}return c.displayName="LoadableComponent",c}},9214:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return i}});let s=r(5155),a=r(7650),n=r(5861),l=r(8284);function i(e){let{moduleIds:t}=e;if("undefined"!=typeof window)return null;let r=n.workAsyncStorage.getStore();if(void 0===r)return null;let i=[];if(r.reactLoadableManifest&&t){let e=r.reactLoadableManifest;for(let r of t){if(!e[r])continue;let t=e[r].files;i.push(...t)}}return 0===i.length?null:(0,s.jsx)(s.Fragment,{children:i.map(e=>{let t=r.assetPrefix+"/_next/"+(0,l.encodeURIPath)(e);return e.endsWith(".css")?(0,s.jsx)("link",{precedence:"dynamic",href:t,rel:"stylesheet",as:"style"},e):((0,a.preload)(t,{as:"script",fetchPriority:"low"}),null)})})}},235:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>C});var s=r(5155),a=r(2115),n=r(6046),l=r(9606),i=r(2679),o=r(534),d=r(3312),c=r(3900),u=r(8986),f=r(9749),p=r(2291),h=r(2928),m=r(4505);let x=(0,r(7401).A)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var g=r(6889),y=r(1902),b=r(1719),v=r(1956);let j=r.n(v)()(()=>Promise.all([r.e(4),r.e(277),r.e(445),r.e(896)]).then(r.bind(r,2896)).then(e=>e.RichTextEditor),{loadableGenerated:{webpack:()=>[2896]},ssr:!1}),w=o.Ikc({description:o.YjP().min(50,"Описание должно содержать минимум 50 символов").max(2048,"Описание не может превышать 2048 символов"),location:o.YjP().min(1,"Укажите базовую локацию"),workSchedule:o.Ikc({isAlwaysReady:o.zMY(),schedulePerDay:o.g1P(o.YjP(),o.YOg(o.Ikc({start:o.YjP().regex(/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/,"Неверный формат времени").optional(),end:o.YjP().regex(/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/,"Неверный формат времени").optional()})))})}),k=["Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"],N=(()=>{let e=[];for(let t=0;t<24;t++)for(let r=0;r<60;r+=30){let s=t.toString().padStart(2,"0"),a=r.toString().padStart(2,"0");e.push("".concat(s,":").concat(a))}return e})();function C(){let e=(0,n.useRouter)(),{user:t,isLoading:r,getProfile:o,becomePerformerFull:v}=(0,h.B)(),[C,P]=a.useState([]),[A,S]=a.useState(""),[L,R]=a.useState({Понедельник:[],Вторник:[],Среда:[],Четверг:[],Пятница:[],Суббота:[],Воскресенье:[]}),[_,T]=a.useState(!1),[E,F]=a.useState(1),[D,I]=a.useState(null),O=(0,l.mN)({resolver:(0,i.u)(w),defaultValues:{description:"",location:"",workSchedule:{isAlwaysReady:!0,schedulePerDay:L}}}),z=O.watch("workSchedule.isAlwaysReady"),B=O.watch("description"),M=e=>{var t;let r=document.createElement("div");return r.innerHTML=e,(null===(t=r.textContent)||void 0===t?void 0:t.length)||0},$=B?M(B):0,V=O.watch("location"),J=$>=50&&C.length>=1&&V.length>=1,Y=()=>{A.trim()&&!C.includes(A.trim())&&(P([...C,A.trim()]),S(""))},q=e=>{P(C.filter(t=>t!==e))},G=e=>{z&&O.setValue("workSchedule.isAlwaysReady",!1);let t={...L};t[e].length>0?t[e]=[]:t[e]=[{start:"09:00",end:"18:00"}],R(t)},K=e=>{z&&O.setValue("workSchedule.isAlwaysReady",!1);let t={...L};t[e]=[...t[e]||[],{start:"00:00",end:"00:00"}],R(t)},U=(e,t)=>{let r={...L},s=r[e].filter((e,r)=>r!==t);r[e]=s,R(r)},Z=(e,t,r,s)=>{z&&O.setValue("workSchedule.isAlwaysReady",!1);let a={...L};a[e][t][r]=s,R(a)};a.useEffect(()=>{let e=setTimeout(async()=>{if(V.length<2){I(null);return}try{let e=await fetch("https://nominatim.openstreetmap.org/search?format=json&q=".concat(encodeURIComponent(V),"&limit=5&addressdetails=1&countrycodes=ru"),{headers:{"Accept-Language":"ru"}}),t=(await e.json()).map(e=>{let t=e.address.city||e.address.town||e.address.village||"",r=e.address.road||"",s=e.address.house_number||"";return[t,r,s].filter(Boolean).join(", ")});I(t.length>0?t[0]:null)}catch(e){console.error("Ошибка поиска адресов:",e),I(null)}},300);return()=>clearTimeout(e)},[V]);let W=e=>{O.setValue("location",e)},H=D&&D.toLowerCase().startsWith(V.toLowerCase()),X=async t=>{try{let r=M(t.description);if(r<50){alert("Описание должно содержать минимум 50 символов. Текущая длина: ".concat(r));return}await v({description:t.description,competencies:C,location:t.location,workSchedule:{isAlwaysReady:t.workSchedule.isAlwaysReady,schedulePerDay:L}}),e.push("/dashboard/profile")}catch(e){console.error("Failed to become performer",e)}};a.useEffect(()=>{o()},[o]),a.useEffect(()=>{r||t?t&&(t.roles.includes("Newbie")||t.roles.includes("Master"))&&e.push("/dashboard/profile"):e.push("/auth/login")},[r,t,e]);let[Q,ee]=a.useState(!1);return(a.useEffect(()=>{ee(!0)},[]),Q)?(0,s.jsxs)("div",{className:"container max-w-4xl mx-auto py-8 px-4",children:[(0,s.jsxs)("div",{className:"mb-8",children:[(0,s.jsx)("h1",{className:"text-3xl font-bold mb-2",children:"Стать исполнителем"}),(0,s.jsx)("p",{className:"text-muted-foreground",children:"Заполните информацию о себе, чтобы начать принимать заказы"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-center mb-8 gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 ".concat(1===E?"text-blue-600":"text-muted-foreground"),children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-full flex items-center justify-center border-2 ".concat(1===E?"border-blue-600 bg-blue-600 text-white":"border-muted"),children:E>1?(0,s.jsx)(x,{className:"w-4 h-4"}):"1"}),(0,s.jsx)("span",{className:"font-medium",children:"Основная информация"})]}),(0,s.jsx)("div",{className:"w-16 h-0.5 ".concat(E>1?"bg-blue-600":"bg-muted")}),(0,s.jsxs)("div",{className:"flex items-center gap-2 ".concat(2===E?"text-blue-600":"text-muted-foreground"),children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-full flex items-center justify-center border-2 ".concat(2===E?"border-blue-600 bg-blue-600 text-white":"border-muted"),children:"2"}),(0,s.jsx)("span",{className:"font-medium",children:"График работы"})]})]}),(0,s.jsx)("form",{onSubmit:O.handleSubmit(X),children:(0,s.jsx)(f.Zp,{children:(0,s.jsxs)(f.Wu,{className:"pt-6",children:[1===E&&(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)(u.J,{htmlFor:"description",children:["Описание ",(0,s.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Расскажите о себе, своем опыте и услугах (минимум 50 символов)"}),(0,s.jsx)(j,{content:O.watch("description")||"",onChange:e=>O.setValue("description",e),placeholder:"Опишите свой опыт, навыки и услуги, которые вы предоставляте...",maxLength:2048}),(0,s.jsxs)("div",{className:"flex justify-between text-sm",children:[O.formState.errors.description?(0,s.jsx)("p",{className:"text-red-500",children:O.formState.errors.description.message}):(0,s.jsx)("p",{className:"text-muted-foreground",children:$>=50?"✓ Минимум достигнут":"".concat(50-$," символов до минимума")}),(0,s.jsxs)("p",{className:"text-muted-foreground",children:[$," / 2048"]})]})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)(u.J,{children:["Компетенции ",(0,s.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Укажите навыки и услуги, которые вы предоставляете"}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(c.p,{placeholder:"Например: Сантехника, Электрика",value:A,onChange:e=>S(e.target.value),onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),Y())}}),(0,s.jsx)(d.$,{type:"button",onClick:Y,children:"Добавить"})]}),C.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-2 mt-2",children:C.map(e=>(0,s.jsxs)("div",{className:"bg-blue-100 text-blue-700 px-3 py-1 rounded-full text-sm flex items-center gap-2",children:[e,(0,s.jsx)("button",{type:"button",onClick:()=>q(e),className:"hover:text-blue-900",children:"\xd7"})]},e))})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)(u.J,{htmlFor:"location",children:["Базовая локация ",(0,s.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Укажите адрес (Tab для выбора подсказки)"}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(c.p,{id:"location",placeholder:"Город, улица, дом",value:V,onChange:e=>W(e.target.value),onKeyDown:e=>{"Tab"===e.key&&D?(e.preventDefault(),O.setValue("location",D),I(null)):"Escape"===e.key&&I(null)},onBlur:()=>I(null),autoComplete:"off",className:"text-base"}),H&&(0,s.jsxs)("div",{className:"absolute inset-y-0 left-0 pointer-events-none flex items-center px-3",children:[(0,s.jsx)("span",{className:"text-base text-transparent",children:V}),(0,s.jsx)("span",{className:"text-base text-muted-foreground",children:D.slice(V.length)})]})]}),O.formState.errors.location&&(0,s.jsx)("p",{className:"text-sm text-red-500",children:O.formState.errors.location.message})]}),(0,s.jsx)("div",{className:"flex justify-end",children:(0,s.jsx)(d.$,{type:"button",onClick:()=>F(2),disabled:!J,children:"Далее"})})]}),2===E&&(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{className:"flex items-start space-x-3",children:[(0,s.jsx)(p.S,{id:"always-ready",checked:z,onCheckedChange:e=>{O.setValue("workSchedule.isAlwaysReady",e),e&&R({Понедельник:[],Вторник:[],Среда:[],Четверг:[],Пятница:[],Суббота:[],Воскресенье:[]})}}),(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)(u.J,{htmlFor:"always-ready",className:"cursor-pointer",children:"Всегда готов к заказам"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Если включено, клиенты будут видеть вас доступным в любое время"})]})]}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)(d.$,{type:"button",variant:"outline",className:"w-full justify-between",onClick:()=>T(!_),children:[(0,s.jsxs)("span",{className:"flex items-center gap-2",children:[(0,s.jsx)(g.A,{className:"w-4 h-4"}),"Настроить расписание"]}),_?(0,s.jsx)(y.A,{className:"w-4 h-4"}):(0,s.jsx)(b.A,{className:"w-4 h-4"})]}),_&&(0,s.jsxs)("div",{className:"space-y-3 mt-4",children:[(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Для каждого дня недели укажите периоды работы. Если для дня нет расписания - работает 24 часа."}),k.map(e=>{var t,r,a;return(0,s.jsxs)("div",{className:"border rounded-lg p-4 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(p.S,{id:e,checked:(null===(t=L[e])||void 0===t?void 0:t.length)>0,onCheckedChange:()=>G(e)}),(0,s.jsx)("label",{htmlFor:e,className:"font-medium cursor-pointer flex-1",children:e}),(null===(r=L[e])||void 0===r?void 0:r.length)>0&&(0,s.jsx)(d.$,{type:"button",variant:"outline",size:"sm",onClick:()=>K(e),children:"+ Добавить период"})]}),null===(a=L[e])||void 0===a?void 0:a.map((t,r)=>{var a;return(0,s.jsxs)("div",{className:"flex items-center gap-2 pl-7",children:[(0,s.jsxs)("select",{className:"flex h-9 w-32 rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:t.start,onChange:t=>Z(e,r,"start",t.target.value),children:[(0,s.jsx)("option",{value:"",disabled:!0,children:"Начало"}),N.map(e=>(0,s.jsx)("option",{value:e,children:e},"start-".concat(e)))]}),(0,s.jsx)("span",{className:"text-muted-foreground",children:"—"}),(0,s.jsxs)("select",{className:"flex h-9 w-32 rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:t.end,onChange:t=>Z(e,r,"end",t.target.value),children:[(0,s.jsx)("option",{value:"",disabled:!0,children:"Конец"}),N.filter(e=>e>t.start).map(e=>(0,s.jsx)("option",{value:e,children:e},"end-".concat(e)))]}),(null===(a=L[e])||void 0===a?void 0:a.length)>1&&(0,s.jsx)(d.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>U(e,r),className:"text-red-500 hover:text-red-700",children:"Удалить"})]},r)})]},e)})]})]}),(0,s.jsxs)("div",{className:"flex justify-between",children:[(0,s.jsx)(d.$,{type:"button",variant:"outline",onClick:()=>F(1),children:"Назад"}),(0,s.jsxs)(d.$,{type:"submit",disabled:r,children:[r&&(0,s.jsx)(m.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Стать исполнителем"]})]})]})]})})})]}):(0,s.jsx)("div",{className:"flex items-center justify-center min-h-screen",children:(0,s.jsx)(m.A,{className:"w-8 h-8 animate-spin"})})}},3312:(e,t,r)=>{"use strict";r.d(t,{$:()=>d});var s=r(5155),a=r(2115),n=r(2317),l=r(1027),i=r(7549);let o=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),d=a.forwardRef((e,t)=>{let{className:r,variant:a,size:l,asChild:d=!1,...c}=e,u=d?n.DX:"button";return(0,s.jsx)(u,{className:(0,i.cn)(o({variant:a,size:l,className:r})),ref:t,...c})});d.displayName="Button"},9749:(e,t,r)=>{"use strict";r.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>o,Zp:()=>l,aR:()=>i});var s=r(5155),a=r(2115),n=r(7549);let l=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...a})});l.displayName="Card";let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",r),...a})});i.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("h3",{ref:t,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",r),...a})});o.displayName="CardTitle";let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",r),...a})});d.displayName="CardDescription";let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",r),...a})});c.displayName="CardContent",a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",r),...a})}).displayName="CardFooter"},2291:(e,t,r)=>{"use strict";r.d(t,{S:()=>o});var s=r(5155),a=r(2115),n=r(6352),l=r(8867),i=r(7549);let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(n.bL,{ref:t,className:(0,i.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:(0,s.jsx)(n.C1,{className:(0,i.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(l.A,{className:"h-4 w-4"})})})});o.displayName=n.bL.displayName},3900:(e,t,r)=>{"use strict";r.d(t,{p:()=>l});var s=r(5155),a=r(2115),n=r(7549);let l=a.forwardRef((e,t)=>{let{className:r,type:a,...l}=e;return(0,s.jsx)("input",{type:a,className:(0,n.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:t,...l})});l.displayName="Input"},8986:(e,t,r)=>{"use strict";r.d(t,{J:()=>d});var s=r(5155),a=r(2115),n=r(4352),l=r(1027),i=r(7549);let o=(0,l.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(n.b,{ref:t,className:(0,i.cn)(o(),r),...a})});d.displayName=n.b.displayName},2928:(e,t,r)=>{"use strict";r.d(t,{B:()=>l});var s=r(9827),a=r(3030),n=r(3705);let l=(0,s.v)((e,t)=>({user:null,isAuth:!1,isLoading:!1,isInitialized:!1,checkAuth:async()=>{if(!(0,a.getCookie)("accessToken")){e({isInitialized:!0,isAuth:!1});return}e({isLoading:!0});try{await t().getProfile(),e({isAuth:!0,isInitialized:!0})}catch(t){console.error("Auth check failed",t),(0,a.deleteCookie)("accessToken"),(0,a.deleteCookie)("refreshToken"),e({user:null,isAuth:!1,isInitialized:!0})}finally{e({isLoading:!1})}},login:async(r,s)=>{e({isLoading:!0});try{let{accessToken:l,refreshToken:i}=(await n.F.post("/auth/login",{phone:r,password:s})).data;(0,a.setCookie)("accessToken",l),(0,a.setCookie)("refreshToken",i),e({isAuth:!0}),await t().getProfile()}finally{e({isLoading:!1})}},register:async t=>{e({isLoading:!0});try{let{confirmPassword:e,...r}=t;await n.F.post("/auth/register",r)}finally{e({isLoading:!1})}},logout:()=>{(0,a.deleteCookie)("accessToken"),(0,a.deleteCookie)("refreshToken"),e({user:null,isAuth:!1}),window.location.href="/auth/login"},getProfile:async()=>{try{let t=await n.F.get("/profile",{params:{_t:Date.now()}});e({user:t.data,isAuth:!0})}catch(e){console.error("Profile load failed",e)}},updateProfile:async r=>{e({isLoading:!0});try{await n.F.put("/profile",r),await t().getProfile()}finally{e({isLoading:!1})}},changePhone:async r=>{e({isLoading:!0});try{await n.F.post("/profile/change-phone",{newPhone:r}),await t().getProfile()}finally{e({isLoading:!1})}},becomePerformer:async()=>{e({isLoading:!0});try{await n.F.post("/profile/become-performer"),await t().getProfile()}finally{e({isLoading:!1})}},becomePerformerFull:async r=>{e({isLoading:!0});try{await n.F.post("/profile/become-performer",{description:r.description,competencies:r.competencies,location:r.location,currentLocation:null,isAlwaysReady:r.workSchedule.isAlwaysReady,workingDays:r.workSchedule.isAlwaysReady?null:JSON.stringify(r.workSchedule.schedulePerDay)}),await t().getProfile()}finally{e({isLoading:!1})}},updateCompetencies:async r=>{e({isLoading:!0});try{await n.F.put("/profile/competencies",{Competencies:r}),await t().getProfile()}finally{e({isLoading:!1})}},uploadAvatar:async r=>{e({isLoading:!0});try{let e=new FormData;e.append("file",r),await n.F.post("/profile/avatar",e,{headers:{"Content-Type":"multipart/form-data"}}),await t().getProfile()}finally{e({isLoading:!1})}},changePassword:async(r,s)=>{e({isLoading:!0});try{var a;let e=null===(a=t().user)||void 0===a?void 0:a.id;if(!e)throw Error("Пользователь не авторизован");await n.F.post("/profile/change-password",{accountId:e,oldPassword:r,newPassword:s})}finally{e({isLoading:!1})}},updateLocation:async(r,s)=>{e({isLoading:!0});try{var a;let e=null===(a=t().user)||void 0===a?void 0:a.id;if(!e)throw Error("Пользователь не авторизован");await n.F.put("/profile/location",{accountId:e,location:r,currentLocation:s}),await t().getProfile()}finally{e({isLoading:!1})}},updateSchedule:async(r,s)=>{e({isLoading:!0});try{var a;let e=null===(a=t().user)||void 0===a?void 0:a.id;if(!e)throw Error("Пользователь не авторизован");let l=r?"[]":JSON.stringify(s||{});await n.F.put("/profile/schedule",{accountId:e,isAlwaysReady:r,workingDaysJson:l}),await t().getProfile()}finally{e({isLoading:!1})}}}))},3705:(e,t,r)=>{"use strict";r.d(t,{F:()=>n});var s=r(2651),a=r(3030);let n=s.A.create({baseURL:"http://127.0.0.1:5000/api",headers:{"Content-Type":"application/json"}});n.interceptors.request.use(e=>{let t=(0,a.getCookie)("accessToken");return t&&e.headers&&(e.headers.Authorization="Bearer ".concat(t)),console.log("\uD83D\uDE80 Sending request to: ".concat(e.baseURL).concat(e.url)),e});let l=!1,i=[],o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;i.forEach(r=>{e?r.reject(e):r.resolve(t)}),i=[]};n.interceptors.response.use(e=>e,async e=>{var t;let r=e.config;if((null===(t=e.response)||void 0===t?void 0:t.status)===401&&!r._retry){if(l)return new Promise((e,t)=>{i.push({resolve:e,reject:t})}).then(e=>(r.headers.Authorization="Bearer ".concat(e),n(r))).catch(e=>Promise.reject(e));r._retry=!0,l=!0;let e=(0,a.getCookie)("refreshToken");try{let{accessToken:t,refreshToken:l}=(await s.A.post("".concat("http://127.0.0.1:5000/api","/auth/refresh"),{refreshToken:e})).data;return(0,a.setCookie)("accessToken",t),(0,a.setCookie)("refreshToken",l),n.defaults.headers.common.Authorization="Bearer ".concat(t),o(null,t),n(r)}catch(e){return o(e,null),(0,a.deleteCookie)("accessToken"),(0,a.deleteCookie)("refreshToken"),window.location.href="/auth/login",Promise.reject(e)}finally{l=!1}}return Promise.reject(e)})},7549:(e,t,r)=>{"use strict";r.d(t,{cn:()=>n,n:()=>l});var s=r(3463),a=r(9795);function n(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.QP)((0,s.$)(t))}function l(e){if(!e)return"—";let t=e.replace(/\D/g,"");if(11===t.length){let e="8"===t[0]?"8":"+7";return"".concat(e," (").concat(t.slice(1,4),") ").concat(t.slice(4,7),"-").concat(t.slice(7,9),"-").concat(t.slice(9,11))}return e}},6352:(e,t,r)=>{"use strict";r.d(t,{C1:()=>k,bL:()=>j});var s=r(2115),a=r(8068),n=r(8166),l=r(3610),i=r(1488),o=r(858),d=r(7510),c=r(7028),u=r(9997),f=r(5155),p="Checkbox",[h,m]=(0,n.A)(p),[x,g]=h(p);function y(e){let{__scopeCheckbox:t,checked:r,children:a,defaultChecked:n,disabled:l,form:o,name:d,onCheckedChange:c,required:u,value:h="on",internal_do_not_use_render:m}=e,[g,y]=(0,i.i)({prop:r,defaultProp:null!=n&&n,onChange:c,caller:p}),[b,v]=s.useState(null),[j,w]=s.useState(null),k=s.useRef(!1),N=!b||!!o||!!b.closest("form"),C={checked:g,disabled:l,setChecked:y,control:b,setControl:v,name:d,form:o,value:h,hasConsumerStoppedPropagationRef:k,required:u,defaultChecked:!P(n)&&n,isFormControl:N,bubbleInput:j,setBubbleInput:w};return(0,f.jsx)(x,{scope:t,...C,children:"function"==typeof m?m(C):a})}var b="CheckboxTrigger",v=s.forwardRef((e,t)=>{let{__scopeCheckbox:r,onKeyDown:n,onClick:i,...o}=e,{control:d,value:c,disabled:p,checked:h,required:m,setControl:x,setChecked:y,hasConsumerStoppedPropagationRef:v,isFormControl:j,bubbleInput:w}=g(b,r),k=(0,a.s)(t,x),N=s.useRef(h);return s.useEffect(()=>{let e=null==d?void 0:d.form;if(e){let t=()=>y(N.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[d,y]),(0,f.jsx)(u.sG.button,{type:"button",role:"checkbox","aria-checked":P(h)?"mixed":h,"aria-required":m,"data-state":A(h),"data-disabled":p?"":void 0,disabled:p,value:c,...o,ref:k,onKeyDown:(0,l.mK)(n,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,l.mK)(i,e=>{y(e=>!!P(e)||!e),w&&j&&(v.current=e.isPropagationStopped(),v.current||e.stopPropagation())})})});v.displayName=b;var j=s.forwardRef((e,t)=>{let{__scopeCheckbox:r,name:s,checked:a,defaultChecked:n,required:l,disabled:i,value:o,onCheckedChange:d,form:c,...u}=e;return(0,f.jsx)(y,{__scopeCheckbox:r,checked:a,defaultChecked:n,disabled:i,required:l,onCheckedChange:d,name:s,form:c,value:o,internal_do_not_use_render:e=>{let{isFormControl:s}=e;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(v,{...u,ref:t,__scopeCheckbox:r}),s&&(0,f.jsx)(C,{__scopeCheckbox:r})]})}})});j.displayName=p;var w="CheckboxIndicator",k=s.forwardRef((e,t)=>{let{__scopeCheckbox:r,forceMount:s,...a}=e,n=g(w,r);return(0,f.jsx)(c.C,{present:s||P(n.checked)||!0===n.checked,children:(0,f.jsx)(u.sG.span,{"data-state":A(n.checked),"data-disabled":n.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});k.displayName=w;var N="CheckboxBubbleInput",C=s.forwardRef((e,t)=>{let{__scopeCheckbox:r,...n}=e,{control:l,hasConsumerStoppedPropagationRef:i,checked:c,defaultChecked:p,required:h,disabled:m,name:x,value:y,form:b,bubbleInput:v,setBubbleInput:j}=g(N,r),w=(0,a.s)(t,j),k=(0,o.Z)(c),C=(0,d.X)(l);s.useEffect(()=>{if(!v)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!i.current;if(k!==c&&e){let r=new Event("click",{bubbles:t});v.indeterminate=P(c),e.call(v,!P(c)&&c),v.dispatchEvent(r)}},[v,k,c,i]);let A=s.useRef(!P(c)&&c);return(0,f.jsx)(u.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=p?p:A.current,required:h,disabled:m,name:x,value:y,form:b,...n,tabIndex:-1,ref:w,style:{...n.style,...C,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function P(e){return"indeterminate"===e}function A(e){return P(e)?"indeterminate":e?"checked":"unchecked"}C.displayName=N},858:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var s=r(2115);function a(e){let t=s.useRef({value:e,previous:e});return s.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}}},e=>{var t=t=>e(e.s=t);e.O(0,[92,273,634,441,517,358],()=>t(8436)),_N_E=e.O()}]);