1 line
5.4 KiB
JavaScript
1 line
5.4 KiB
JavaScript
import{A as e,D as t,E as n,I as r,J as i,K as ee,L as a,M as o,N as s,R as c,St as l,Tt as u,W as te,X as ne,_ as re,g as d,k as f,n as p,pt as m,xt as h}from"./BasicIcon-B6lR-mG3.js";import{l as ie}from"./dist-BcgVHqJQ.js";import{c as ae,t as g,u as _}from"./format-BHJptHdF.js";import{c as oe,f as se,m as ce,o as le}from"./index-DXso6ia7.js";import{t as ue}from"./IconChevronBack-BXRfc2bX.js";import{t as de}from"./FormErrorBanner-8PcsTbdO.js";import{n as v,r as y,t as b}from"./formErrors-DglFjYkZ.js";import{t as x}from"./login-fabric-CzrIXTnD.js";import{t as fe}from"./IconEditPen-CppsBLM9.js";var pe={class:`page otp-page`},me=[`src`],he={class:`otp-page__scroll`},S={class:`otp-page__stage`},C={class:`otp-top`},w={class:`otp-brand`},T={class:`otp-card__lead`},E={dir:`ltr`},D={class:`otp-row`,dir:`ltr`,role:`group`,"aria-label":`کد تأیید`},O=[`id`,`value`,`aria-label`,`onInput`,`onKeydown`,`onPaste`],k={key:0,class:`otp-card__error`},A=[`disabled`],j={key:0,class:`otp-submit__spinner`,"aria-hidden":`true`},M={class:`otp-submit__chevron`,"aria-hidden":`true`},N=[`disabled`],P={dir:`ltr`},F=4,I=60,L=p(c({__name:`OtpView`,setup(c){let p=d(),L=re(),R=oe(),z=f(()=>{let e=p.query.phone,t=Array.isArray(e)?e[0]:e;return ae(typeof t==`string`?t:``)}),B=f(()=>p.query.mode===`register`),V=m(Array.from({length:F},()=>``)),H=m([]),U=m({}),W=m(``),G=m(I),K=f(()=>V.value.join(``)),q=f(()=>G.value<=0&&!R.loading),ge=f(()=>{let e=Math.floor(G.value/60),t=G.value%60,n=`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`;return _(n)}),{pause:_e,resume:ve}=ie(()=>{if(G.value<=1){G.value=0,_e();return}--G.value},1e3,{immediate:!1});function J(){U.value=v(U.value,`code`),y(U.value)||(W.value=``)}function ye(e,t){H.value[t]=e}function Y(e){let t=Math.max(0,Math.min(3,e));te(()=>H.value[t]?.focus())}function X(){G.value=I,ve()}function Z(e,t=0){let n=g(e).slice(0,F-t);if(!n)return t;let r=[...V.value],i=t;for(let e of n){if(i>=F)break;r[i]=e,i+=1}return V.value=r,J(),Math.min(i,3)}function Q(){K.value.length===F&&!R.loading&&$()}function be(e,t){let n=t.target,r=g(n.value);if(r.length>1){let t=Z(r,e);n.value=V.value[e]??``,Y(t),Q();return}let i=r.slice(-1);V.value[e]=i,n.value=i,J(),i&&e<3?Y(e+1):i&&Q()}function xe(e,t){if(t.key===`Backspace`){if(V.value[e]){V.value[e]=``,J();return}e>0&&(V.value[e-1]=``,J(),Y(e-1));return}if(t.key===`ArrowLeft`){t.preventDefault(),Y(e-1);return}t.key===`ArrowRight`&&(t.preventDefault(),Y(e+1))}function Se(e,t){t.preventDefault(),Y(Z(t.clipboardData?.getData(`text`)??``,e)),Q()}function Ce(e){return e?_(e):``}async function $(){if(R.loading)return;U.value={},W.value=``;let e={};if(K.value.length<F&&(e.code=`کد تأیید را کامل وارد کنید.`),y(e)){U.value=e,W.value=b;return}let t=await R.confirmOtp(z.value,g(K.value));t.success?L.replace(`/`):(W.value=t.message??`کد تأیید نامعتبر است.`,V.value=Array.from({length:F},()=>``),Y(0))}async function we(){if(!q.value)return;W.value=``,U.value={};let e=B.value?se():null;if(B.value&&!e){W.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبتنام را شروع کنید.`;return}let t=await R.requestOtp(z.value,{isRegister:B.value,firstName:e?.firstName,lastName:e?.lastName});t.success?(V.value=Array.from({length:F},()=>``),X(),Y(0)):W.value=t.message??`خطا در ارسال مجدد کد.`}function Te(){L.replace({name:B.value?`register`:`login`})}return ee(()=>{if(!z.value){L.replace({name:`login`});return}X(),Y(0)}),(ee,c)=>(i(),s(`div`,pe,[e(`img`,{class:`otp-page__bg`,src:h(x),alt:``},null,8,me),e(`div`,he,[e(`div`,S,[e(`header`,C,[e(`button`,{type:`button`,class:`otp-top__back`,"aria-label":`بازگشت`,onClick:c[0]||=e=>h(L).push(B.value?`/register`:`/login`)},[a(ue,{size:20})])]),e(`div`,w,[a(ce,{size:72}),c[1]||=e(`h1`,{class:`otp-brand__fa`},`نادمی تکس`,-1),c[2]||=e(`p`,{class:`otp-brand__en`},`NADEMITEX`,-1)]),e(`form`,{class:`otp-card`,onSubmit:n($,[`prevent`])},[c[7]||=e(`h2`,{class:`otp-card__title`},`تأیید موبایل`,-1),e(`p`,T,[c[3]||=r(` کد ارسالشده به `,-1),e(`span`,E,u(h(_)(z.value)),1),c[4]||=r(` را وارد کنید. `,-1)]),a(de,{message:W.value},null,8,[`message`]),e(`div`,D,[(i(!0),s(t,null,ne(V.value,(e,t)=>(i(),s(`input`,{id:`otp-${t}`,key:t,ref_for:!0,ref:e=>ye(e,t),class:l([`otp-box`,{"otp-box--error":U.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:Ce(e),"aria-label":`رقم ${h(_)(String(t+1))}`,onInput:e=>be(t,e),onKeydown:e=>xe(t,e),onPaste:e=>Se(t,e)},null,42,O))),128))]),U.value.code?(i(),s(`p`,k,u(U.value.code),1)):o(``,!0),e(`button`,{class:`otp-submit`,type:`submit`,disabled:h(R).loading},[h(R).loading?(i(),s(`span`,j)):o(``,!0),e(`span`,M,[a(le,{size:18,color:`#F4EDE4`})]),c[5]||=e(`span`,null,`تأیید و ورود`,-1)],8,A),e(`button`,{class:`otp-resend`,type:`button`,disabled:!q.value,onClick:we},[q.value?(i(),s(t,{key:0},[r(`ارسال مجدد کد`)],64)):(i(),s(t,{key:1},[r(`ارسال مجدد کد (`+u(ge.value)+`)`,1)],64))],8,N),e(`button`,{type:`button`,class:`otp-edit`,onClick:Te},[e(`span`,P,u(h(_)(z.value)),1),c[6]||=e(`span`,null,`ویرایش شماره`,-1),a(fe,{size:16,"stroke-width":1.5})])],32),c[8]||=e(`div`,{class:`otp-spacer`,"aria-hidden":`true`},null,-1),c[9]||=e(`p`,{class:`otp-watermark`},[r(`MORE`),e(`br`),r(`THAN`),e(`br`),r(`FABRIC`)],-1)])])]))}}),[[`__scopeId`,`data-v-ae24a66d`]]);export{L as default}; |