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

1 line
5.4 KiB
JavaScript

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