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