PageSourceSearch

https://cdn.pinket.com/customer/WalletTransferPage-46vRkPDA.js

js pinket.com collected 2026-10-08 22:18:43 UTC 7,176 bytes, 1 lines download raw bytes

1import{b as z,d as B,j as e}from"./vendor-query-DXAbHt1b.js";import{N as F,F as U,ed as D,dU as w,v as $,R as y,b1 as q,p as H,bk as K,bt as O,bl as Q,B as _,t as G}from"./index-BxM0UvRw.js";import{r as o}from"./vendor-map-DXuqOiHK.js";import{o as W}from"./hooks-CKjeYQr2.js";import{u as k}from"./useChangeThemeColor-BckRXDvS.js";import{A as R}from"./Alert-Bg9HS463.js";import{H as V}from"./Header-BYyyZHQI.js";import{a as X,R as J}from"./RadioGroup-8tKac7Zx.js";import{S as Y}from"./ShadowHeader-BeeeCTK5.js";import{T as E}from"./TextField-Dl6Cntjw.js";import{g as L}from"./colors-Wrj5_1ii.js";import"./TenantGate-D5XcRzFb.js";import"./TenantSlot-Cv2pU8eN.js";import{a as Z}from"./usePostSettingsQueriesEnabled-CiHNCE4K.js";import{w as T}from"./index-B2qgZtu5.js";import{t as ee}from"./string-utils-DDJJdl_f.js";import{B as te}from"./BeatLoader-CtUreDk-.js";import"./vendor-state-bZ_QQ8nY.js";import"./vendor-radix-C8AIeoqK.js";import"./AltArrowRightIcon-CGTmhUUv.js";import"./Skeleton-BucTEhhP.js";import"./useScrollPastSentinel-B4v15qQr.js";import"./react-intersection-observer.m-BqmKQFL0.js";const ae=(t=!0)=>{const r=Z();return z({queryKey:T.financialCredits(),queryFn:async({signal:a})=>F({method:"GET",url:U(D.credits),signal:a}),enabled:t&&r})},re=()=>B({mutationFn:t=>F({method:"POST",url:U(D.transferRequest),data:t},!1),onSuccess:async()=>{await Promise.all([w.invalidateQueries({queryKey:T.financialCredits()}),w.invalidateQueries({queryKey:T.summary()})])}}),se=t=>{const r=[];for(const a of t)if(a.type==="organizationCredits")for(const c of a.data.credits)!c.canUse||c.credit<=0||r.push({uid:c.uid,credit:c.credit,usagePolicyName:c.usagePolicyName,organizationName:a.data.name,organizationKey:a.data.organizationKey,logoUrl:a.data.logoUrl});return r},I=1e3,ne=/^09\d{9}$/,oe=/^[0-9]{10}$/,P=(t,r)=>{const a=ee(t).replace(/\D/g,"");return r===void 0?a:a.slice(0,r)},ie=t=>{const r=Number(t.replaceAll(",",""));return Number.isFinite(r)?r:0},M=t=>P(t).replace(/\B(?=(\d{3})+(?!\d))/g,","),le=t=>P(t,11),ue=t=>P(t,10),ce=t=>{if(!t||typeof t!="object"||!("messages"in t))return;const{messages:r}=t;if(!Array.isArray(r)||r.length===0)return;const a=r[0];if(!(typeof a!="object"||a===null||!("text"in a)||typeof a.text!="string"||!a.text))return a.text},de=()=>{const t=$(),{data:r,isPending:a,isError:c}=ae(),{mutateAsync:v,isPending:x}=re(),l=o.useMemo(()=>se(r??[]),[r]),[i,p]=o.useState(""),[d,b]=o.useState(""),[f,S]=o.useState(""),[h,C]=o.useState(""),N=o.useRef("");o.useEffect(()=>{l.length&&p(n=>n&&l.some(j=>j.uid===n)?n:l[0].uid)},[l]),o.useEffect(()=>{if(!i||i===N.current)return;const n=l.find(j=>j.uid===i);n&&(N.current=i,C(M(String(n.credit))))},[i,l]);const u=o.useMemo(()=>l.find(n=>n.uid===i)??null,[i,l]),m=o.useMemo(()=>ie(h),[h]),g=o.useMemo(()=>{if(h){if(m<I)return`حداقل مبلغ انتقال ${I.toLocaleString("fa-IR")} تومان است.`;if(u&&m>u.credit)return"مبلغ وارد شده بیشتر از موجودی اعتبار انتخاب‌شده است."}},[h,m,u]),s=o.useMemo(()=>a||x||!u||!d||!f||!m||!!g,[g,a,x,m,u,f,d]);return{transferableCredits:l,selectedCreditUid:i,setSelectedCreditUid:p,selectedCredit:u,targetPhoneNumber:d,targetNationalCode:f,amount:h,amountError:g,isPending:a,isError:c,isSubmitting:x,isSubmitDisabled:s,handleAmountChange:n=>{n.replaceAll(",","").length>16||C(M(n))},handlePhoneChange:n=>{b(le(n))},handleNationalCodeChange:n=>{S(ue(n))},handleSubmit:async()=>{if(!u){y("لطفاً اعتبار مورد نظر را انتخاب کنید.");return}if(!ne.test(d)){y("شماره موبایل وارد شده نامعتبر است.");return}if(!oe.test(f)){y("کد ملی وارد شده نامعتبر است.");return}if(!g){try{await v({sourceWallet:u.uid,targetPhoneNumber:d,targetNationalCode:f,amount:m})}catch(n){y(ce(n)??"مشکلی پیش آمده! لطفاً دوباره تلاش کنید.");return}q("انتقال اعتبار با موفقیت انجام شد."),t(H.homepage.root,{replace:!0})}}}},A="px-3",me=()=>{const{transferableCredits:t,selectedCreditUid:r,setSelectedCreditUid:a,targetPhoneNumber:c,targetNationalCode:v,amount:x,amountError:l,isPending:i,isError:p,isSubmitting:d,isSubmitDisabled:b,handleAmountChange:f,handlePhoneChange:S,handleNationalCodeChange:h,handleSubmit:C}=de(),[N,u]=o.useState(!1),m=s=>{u(s.currentTarget.scrollTop>0)},g=s=>{s.preventDefault(),!b&&C()};return e.jsxs("div",{className:"flex flex-col grow min-h-0 bg-surface",children:[e.jsx(Y,{show:N,children:e.jsx(V,{title:"انتقال اعتبار",classes:"!shadow-none"})}),e.jsxs("form",{className:"flex flex-col flex-1 min-h-0 bg-surface",onSubmit:g,children:[e.jsxs("div",{className:"flex flex-col flex-1 min-h-0 overflow-y-auto overscroll-y-contain gap-3 pt-3",onScroll:m,children:[e.jsxs("div",{className:`flex flex-col gap-2 ${A}`,children:[e.jsx("p",{className:"label-2 text-on-surface",children:"انتخاب اعتبار"}),i?e.jsx("p",{className:"body-2 text-on-surface-variant",children:"در حال بارگذاری..."}):null,p?e.jsx(R,{children:e.jsx("p",{children:"در نمایش اعتبارهای شما مشکلی پیش آمده‌است."})}):null,!i&&!p&&t.length===0?e.jsx(R,{children:e.jsx("p",{children:"اعتبار سازمانی قابل انتقالی برای شما موجود نیست."})}):null,!i&&!p&&t.length>0?e.jsx(X,{value:r,onValueChange:a,className:"gap-2",children:t.map(s=>e.jsxs("label",{htmlFor:`transfer-credit-${s.uid}`,className:"flex items-start gap-3 rounded-xl border border-surface-variant bg-surface-1 p-3 cursor-pointer",children:[e.jsx(J,{id:`transfer-credit-${s.uid}`,value:s.uid,className:"mt-0.5"}),e.jsxs("div",{className:"flex flex-col gap-1 min-w-0",children:[e.jsx("p",{className:"label-2 text-on-surface",children:s.organizationName}),e.jsx("p",{className:"body-3 text-on-surface-variant",children:s.usagePolicyName}),e.jsxs("p",{className:"label-2 text-on-surface",children:[s.credit.toLocaleStr
1ing("fa-IR")," تومان"]})]})]},s.uid))}):null]}),e.jsx("div",{className:`${A} mt-4`,children:e.jsx(E,{name:"transferAmount",label:"مبلغ انتقال (تومان)",value:x,onChange:s=>f(s.target.value),placeholder:"100,000",error:l,fixedLabel:!0,reserveErrorSpace:!0})}),e.jsxs("div",{className:A,children:[e.jsx("p",{className:"label-2 text-on-surface mb-3",children:"اطلاعات گیرنده"}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx(E,{name:"targetPhoneNumber",label:"شماره موبایل",value:c,onChange:s=>S(s.target.value),placeholder:"09123456789",fixedLabel:!0,reserveErrorSpace:!0}),e.jsx(E,{name:"targetNationalCode",label:"کد ملی",value:v,onChange:s=>h(s.target.value),placeholder:"کد ملی ۱۰ رقمی",fixedLabel:!0,reserveErrorSpace:!0})]})]})]}),e.jsx("div",{className:"shrink-0 w-full p-3 pb-safe-offset-3 bg-surface shadow-base-up",children:e.jsx(_,{type:"submit",disabled:b||t.length===0,className:G("w-full bg-primary text-on-primary",d&&"disabled:opacity-100"),children:d?e.jsx(te,{color:L("--on-primary"),size:10}):"انتقال اعتبار"})})]})]})},qe=()=>{k(L("--surface"));const t=W(),r=K();return t?e.jsx(me,{}):e.jsx(O,{to:Q(r),replace:!0})};export{qe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.