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

1 line
5.0 KiB
JavaScript

import{E as e,F as t,G as n,I as r,L as i,M as a,O as o,T as s,U as c,Y as l,_ as u,bt as d,ft as f,g as ee,j as te,k as p,n as m,q as h,tt as g,wt as _,xt as v}from"./BasicIcon-CjTTsi6o.js";import{i as y}from"./dist-D9CyXEdG.js";import{c as b,t as x,u as S}from"./format-BHJptHdF.js";import{c as ne,f as re,i as ie,n as C}from"./index-BQQA5ZX-.js";import{t as ae}from"./IconChevronBack-B10eZjCQ.js";import{t as w}from"./FormErrorBanner-B8THF9oG.js";import{n as T,r as E,t as D}from"./formErrors-DglFjYkZ.js";import{t as O}from"./IconEditPen-CUhGotGH.js";var k={class:`page page-shell auth-page`},oe={class:`page__scroll flex flex-col justify-center py-6`},se={class:`auth-header`},ce={class:`page-subtitle`},A={class:`form-group`},j={class:`otp-row flex w-full max-w-full justify-center ltr`,dir:`ltr`,role:`group`,"aria-label":`کد تأیید`},M=[`id`,`value`,`aria-label`,`onInput`,`onKeydown`,`onPaste`],N={key:0,class:`input-error-text`},P={class:`ltr tabular-nums`,dir:`ltr`},F=4,I=60,L=m(i({__name:`OtpView`,setup(i){let m=ee(),L=u(),R=ne(),z=o(()=>{let e=m.query.phone,t=Array.isArray(e)?e[0]:e;return b(typeof t==`string`?t:``)}),B=o(()=>m.query.mode===`register`),V=f(Array.from({length:F},()=>``)),H=f([]),U=f({}),W=f(``),G=f(I),K=o(()=>V.value.join(``)),q=o(()=>G.value<=0&&!R.loading),le=o(()=>{let e=Math.floor(G.value/60),t=G.value%60,n=`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`;return S(n)}),{pause:ue,resume:de}=y(()=>{if(G.value<=1){G.value=0,ue();return}--G.value},1e3,{immediate:!1});function J(){U.value=T(U.value,`code`),E(U.value)||(W.value=``)}function fe(e,t){H.value[t]=e}function Y(e){let t=Math.max(0,Math.min(3,e));c(()=>H.value[t]?.focus())}function X(){G.value=I,de()}function Z(e,t=0){let n=x(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 pe(e,t){let n=t.target,r=x(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 me(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 he(e,t){t.preventDefault(),Y(Z(t.clipboardData?.getData(`text`)??``,e)),Q()}function ge(e){return e?S(e):``}async function $(){if(R.loading)return;U.value={},W.value=``;let e={};if(K.value.length<F&&(e.code=`کد تأیید را کامل وارد کنید.`),E(e)){U.value=e,W.value=D;return}let t=await R.confirmOtp(z.value,x(K.value));t.success?L.replace(`/`):(W.value=t.message??`کد تأیید نامعتبر است.`,V.value=Array.from({length:F},()=>``),Y(0))}async function _e(){if(!q.value)return;W.value=``,U.value={};let e=B.value?re():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 ve(){L.replace({name:B.value?`register`:`login`})}return n(()=>{if(!z.value){L.replace({name:`login`});return}X(),Y(0)}),(n,i)=>(h(),a(`div`,k,[p(`button`,{type:`button`,class:`auth-back`,"aria-label":`بازگشت`,onClick:i[0]||=e=>d(L).push(B.value?`/register`:`/login`)},[r(ae,{size:20})]),r(ie),p(`div`,oe,[p(`div`,se,[i[1]||=p(`h1`,{class:`page-title`},`تأیید شماره موبایل`,-1),p(`p`,ce,`کد ارسال‌شده به `+_(d(S)(z.value))+` را وارد کنید`,1)]),p(`form`,{class:`card`,onSubmit:s($,[`prevent`])},[r(w,{message:W.value},null,8,[`message`]),p(`div`,A,[p(`div`,j,[(h(!0),a(e,null,l(V.value,(e,t)=>(h(),a(`input`,{id:`otp-${t}`,key:t,ref_for:!0,ref:e=>fe(e,t),class:v([`otp-box`,{"otp-box--error":U.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:ge(e),"aria-label":`رقم ${d(S)(String(t+1))}`,onInput:e=>pe(t,e),onKeydown:e=>me(t,e),onPaste:e=>he(t,e)},null,42,M))),128))]),U.value.code?(h(),a(`p`,N,_(U.value.code),1)):te(``,!0)]),r(C,{block:``,type:`submit`,loading:d(R).loading},{default:g(()=>[...i[2]||=[t(`تأیید و ورود`,-1)]]),_:1},8,[`loading`]),r(C,{block:``,variant:`outline`,type:`button`,class:`mt-2`,disabled:!q.value,onClick:_e},{default:g(()=>[q.value?(h(),a(e,{key:0},[t(`ارسال مجدد کد`)],64)):(h(),a(e,{key:1},[t(`ارسال مجدد کد (`+_(le.value)+`)`,1)],64))]),_:1},8,[`disabled`]),p(`button`,{type:`button`,class:`mt-3 mx-auto flex items-center justify-center gap-1.5 border-0 bg-transparent p-0 text-sm text-muted cursor-pointer transition-colors hover:text-text`,onClick:ve},[p(`span`,P,_(d(S)(z.value)),1),i[3]||=p(`span`,null,`ویرایش شماره`,-1),r(O,{size:18,"stroke-width":1.5})])],32)])]))}}),[[`__scopeId`,`data-v-07a29845`]]);export{L as default};