Files
nademitex_user/dist/assets/OtpView-DuS7Nx9-.js
T

1 line
5.5 KiB
JavaScript

import{At as e,E as t,F as n,M as r,Pt as i,_ as a,c as o,d as s,f as c,g as l,i as u,k as d,l as f,nt as p,t as ee,ut as m,v as h}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{u as g}from"./BasicIcon-Bzeb0Iwd.js";import{l as _}from"./dist-U-AqZ6hP.js";import{d as v,l as te,t as y}from"./format-C72AoJ2H.js";import{M as ne,_ as re,c as ie,h as ae,j as oe,o as se}from"./index-3Kv0ngks.js";import{t as ce}from"./IconChevronBack-CDeN0Cbu.js";import{t as le}from"./FormErrorBanner-Ud1D04xf.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-DkMxper9.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=ee(h({__name:`OtpView`,setup(ee){let h=oe(),I=ne(),L=ie(),R=o(()=>{let e=h.query.phone,t=Array.isArray(e)?e[0]:e;return te(typeof t==`string`?t:``)}),z=o(()=>h.query.mode===`register`),B=p(Array.from({length:P},()=>``)),V=p([]),H=p({}),U=p(``),W=p(F),G=o(()=>B.value.join(``)),K=o(()=>W.value<=0&&!L.loading),_e=o(()=>{let e=Math.floor(W.value/60),t=W.value%60,n=`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`;return v(n)}),{pause:ve,resume:ye}=_(()=>{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 n=Math.max(0,Math.min(3,e));t(()=>V.value[n]?.focus())}function Y(){W.value=F,ye()}function X(e,t=0){let n=y(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=y(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?v(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,y(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?ae():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 d(()=>{if(!R.value){I.replace({name:`login`});return}Y(),J(0)}),(t,o)=>(r(),c(`div`,pe,[f(`img`,{class:`otp-page__bg`,src:m(x),alt:``},null,8,me),f(`div`,he,[f(`div`,ge,[f(`header`,S,[f(`button`,{type:`button`,class:`otp-top__back`,"aria-label":`بازگشت`,onClick:o[0]||=e=>m(I).push(z.value?`/register`:`/login`)},[a(ce,{size:20})])]),f(`div`,C,[a(re,{size:72}),o[1]||=f(`h1`,{class:`otp-brand__fa`},`نادمی تکس`,-1),o[2]||=f(`p`,{class:`otp-brand__en`},`NADEMITEX`,-1)]),f(`form`,{class:`otp-card`,onSubmit:g($,[`prevent`])},[o[7]||=f(`h2`,{class:`otp-card__title`},`تأیید موبایل`,-1),f(`p`,w,[o[3]||=l(` کد ارسال‌شده به `,-1),f(`span`,T,i(m(v)(R.value)),1),o[4]||=l(` را وارد کنید. `,-1)]),a(le,{message:U.value},null,8,[`message`]),f(`div`,E,[(r(!0),c(u,null,n(B.value,(t,n)=>(r(),c(`input`,{id:`otp-${n}`,key:n,ref_for:!0,ref:e=>be(e,n),class:e([`otp-box`,{"otp-box--error":H.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:Ce(t),"aria-label":`رقم ${m(v)(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?(r(),c(`p`,O,i(H.value.code),1)):s(``,!0),f(`button`,{class:`otp-submit`,type:`submit`,disabled:m(L).loading},[m(L).loading?(r(),c(`span`,A)):s(``,!0),f(`span`,j,[a(se,{size:18,color:`#F4EDE4`})]),o[5]||=f(`span`,null,`تأیید و ورود`,-1)],8,k),f(`button`,{class:`otp-resend`,type:`button`,disabled:!K.value,onClick:we},[K.value?(r(),c(u,{key:0},[l(`ارسال مجدد کد`)],64)):(r(),c(u,{key:1},[l(`ارسال مجدد کد (`+i(_e.value)+`)`,1)],64))],8,M),f(`button`,{type:`button`,class:`otp-edit`,onClick:Te},[f(`span`,N,i(m(v)(R.value)),1),o[6]||=f(`span`,null,`ویرایش شماره`,-1),a(fe,{size:16,"stroke-width":1.5})])],32),o[8]||=f(`div`,{class:`otp-spacer`,"aria-hidden":`true`},null,-1),o[9]||=f(`p`,{class:`otp-watermark`},[l(`MORE`),f(`br`),l(`THAN`),f(`br`),l(`FABRIC`)],-1)])])]))}}),[[`__scopeId`,`data-v-95ef2b05`]]);export{I as default};