PageSourceSearch

https://app.talo.com.ar/static/ExpirationPeriod.BQTDzdh2.js

js talo.com.ar collected 2026-09-28 06:02:13 UTC 11,424 bytes, 1 lines download raw bytes

1import{r as a,j as e,b4 as G,l as J,d as H,a5 as F,bu as K,by as z,am as Z,ag as Q,cJ as Y,cK as ee,cL as te,bE as ie,cM as ne,ca as D,av as y,aC as A,B as se,w as ae,a7 as re,C as oe,a8 as le,dv as ce,bL as V,aB as ue}from"./index.IuOeGzRp.js";import{F as de,a as O}from"./form.CdCiOf5r.js";import{F as xe}from"./FeatureLayout.Dis2KVkv.js";import{z as pe}from"./zod-hook-form-resolver.DLqwCh2D.js";import{u as me}from"./index.esm.DM8zgIgo.js";const U=6;function be(){const[t,l]=a.useState(U);return a.useEffect(()=>{const r=window.setInterval(()=>{l(o=>o<=0?U:o-1)},1e3);return()=>window.clearInterval(r)},[]),e.jsx("div",{"aria-hidden":"true",className:"relative h-[248px] w-full max-w-[420px] overflow-hidden rounded-2xl bg-[#ececec]",children:e.jsxs("div",{className:"absolute left-1/2 top-8 h-[250px] w-[285px] -translate-x-1/2 overflow-hidden rounded-t-[32px] bg-[#686868]",children:[e.jsx("div",{className:"absolute left-1/2 top-2.5 h-6 w-20 -translate-x-1/2 rounded-full bg-black"}),e.jsxs("div",{className:"absolute inset-x-3 top-10 rounded-[27px] bg-black px-5 pb-3 pt-5 shadow-[0_5px_8px_rgba(0,0,0,0.25)]",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-medium leading-[14px] tracking-[-0.15px] text-white",children:[e.jsx("span",{children:"Esperando pago"}),e.jsx("span",{className:"flex items-center gap-1 text-[#818383]",children:[0,1,2].map(r=>e.jsx("span",{className:"size-1 animate-pulse rounded-full bg-current",style:{animationDelay:`${r*220}ms`}},r))})]}),e.jsx("p",{className:"mt-1 max-w-[196px] text-[10px] font-medium leading-3 tracking-[-0.15px] text-[#818383]",children:"Se completara la orden una vez, enviado el monto final."}),e.jsxs("div",{className:"mt-3 flex gap-2",children:[e.jsx("div",{className:"h-[29px] flex-1 rounded-full bg-[#1a252d]"}),e.jsxs("div",{className:"flex h-[29px] flex-1 items-center justify-center gap-1 rounded-full bg-[#2d1a1a] text-[12px] tracking-[-0.26px] text-[#fb8b28]",children:[e.jsxs("span",{children:["00:",t.toString().padStart(2,"0")]}),e.jsx(G,{className:"size-2.5",strokeWidth:1.8})]})]})]})]})})}const W=336,fe=W*60,$=5,L=(t,l,r)=>ce(o=>o===""||o===void 0||o===null?0:Number(o),ue({error:`Ingresá una cantidad de ${t} válida`}).int({error:`Ingresá ${t} enteros`}).min(0,{error:`Los ${t} no pueden ser negativos`}).max(l,{error:r})),ge=le({expirationHours:L("horas",W,"El máximo posible es un total de 336 horas"),expirationMinutes:L("minutos",59,"Ingresá entre 0 y 59 minutos")}).superRefine((t,l)=>{const r=t.expirationHours*60+t.expirationMinutes;r<$&&l.addIssue({code:V.custom,path:["expirationMinutes"],message:`El mínimo posible es un total de ${$} minutos`}),r>fe&&l.addIssue({code:V.custom,path:["expirationMinutes"],message:"El máximo posible es un total de 336 horas"})}),k=(t,l)=>{if(t==="")return t;const r=t.startsWith("-")?"-":"",o=t.replace(/\D/g,"").replace(/^0+(?=\d)/,"");return`${r}${o.slice(0,l)}`},v=t=>({expirationHours:Math.floor(t/60),expirationMinutes:t%60}),X=t=>t.cancellation_period_minutes?v(t.cancellation_period_minutes):t.cancellation_period!==void 0?v(Math.round(t.cancellation_period*60)):t.expiration_period?v(t.expiration_period*24*60):v(7200),we=()=>{var I,P;const{user:t,updateUser:l,refetchUser:r,stores:o}=J(),[M,d]=a.useState(null),[b,j]=a.useState(!1),[_,N]=a.useState(null),x=a.useRef(null),p=a.useRef(null),m=a.useRef(null),S=a.useId(),q=pe(ge),n=me({resolver:q,defaultValues:X(t),mode:"onChange"}),f=((I=n.formState.errors.expirationHours)==null?void 0:I.message)??((P=n.formState.errors.expirationMinutes)==null?void 0:P.message),C=a.useCallback(i=>{x.current&&clearTimeout(x.current),m.current&&cancelAnimationFrame(m.current),N(null),m.current=requestAnimationFrame(()=>{N(i),x.current=setTimeout(()=>N(null),360)})},[]),E=a.useCallback(async i=>{if(await n.trigger())return;const c=n.getFieldState(i).invalid?i:n.getFieldState("expirationHours").invalid?"expirationHours":"expirationMinutes";C(c)},[n,C]),g=a.useCallback((i,s)=>{n.setValue(i,s,{shouldDirty:!0,shouldValidate:!0}),E(i)},[n,E]),h=a.useCallback((i,s)=>{const c=Number(n.getValues(i))||0,R=i==="expirationHours"?3:2;g(i,k(String(c+s),R))},[g,n]);a.useEffect(()=>{n.reset(X(t))},[n,t]),a.useEffect(()=>()=>{x.current&&clearTimeout(x.current),p.current&&clearTimeout(p.current),m.current&&cancelAnimationFrame(m.current)},[]);const T=H({mutationFn:async i=>(await F.patch(`users/${t==null?void 0:t.user_id}`,{automatic_cancellation:i.automatic_cancellation})).data,onSuccess:i=>{l(i),r(),d(null)},onError:i=>{var s,c;d(((c=(s=i.response)==null?void 0:s.data)==null?void 0:c.message)||"Error al actualizar el período de expiración")}}),u=H({mutationFn:async i=>{const s=i.expirationHours*60+i.expirationMinutes,c={cancellation_period:Math.max(1,Math.ceil(s/60)),cancellation_period_minutes:s};return(await F.patch(`users/${t==null?void 0:t.user_id}`,{...c})).data},onSuccess:i=>{l(i),r(),j(!0),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>j(!1),1e3),d(null)},onError:i=>{var s,c;d(((c=(s=i.response)==null?void 0:s.data)==null?void 0:c.message)||"Error al actualizar el período de expiración")}}),B=i=>{d(null),j(!1),u.mutate(i)},w=o==null?void 0:o.filter(i=>i.store_type==="tiendanube"||i.store_type==="shopify"||i.store_type==="vtex");return e.jsx(xe,{coverImage:e.jsx(be,{}),sectionHeaderProps:{title:"Definí cuánto tiempo tienen tus clientes para completar el pago.",subtitle:"Este período define el tiempo que tienen tus clientes para realizar el pago antes de que la orden expire.",align:"center",className:"title:text-[20px] title:leading-6 title:tracking-[-0.2px] subtitle:text-sm subtitle:leading-[21px] subt
1itle:tracking-[-0.28px]"},children:e.jsx(K,{roles:[z.OWNER,z.SUPERVISOR],children:e.jsx(Z,{children:e.jsx(de,{...n,children:e.jsxs("form",{onSubmit:n.handleSubmit(B),className:"space-y-8",children:[(w==null?void 0:w.length)>0&&e.jsx(Q,{title:"Cancelar automáticamente las ordenes",description:"impagas pasadas el tiempo de expiración en tu tienda online (Shopify, Tiendanube o VTEX)",trailing:"switch",disabled:T.isPending,switchChecked:t==null?void 0:t.automatic_cancellation,subleading:e.jsx(Y,{children:e.jsxs(ee,{children:[e.jsx(te,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":"Más información sobre la cancelación automática",children:e.jsx(ie,{className:"size-icon text-icon-muted"})})}),e.jsx(ne,{side:"top",className:"max-w-sm rounded-md border border-border bg-popover p-3",children:e.jsx("p",{children:"Al vencer el período, la orden también se cancela automáticamente en tu tienda."})})]})}),onCheckedChange:i=>{T.mutate({automatic_cancellation:i})}}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-center gap-betweenFields",children:[e.jsx(O,{control:n.control,name:"expirationHours",render:({field:i})=>e.jsxs("div",{className:"flex flex-col items-center gap-[10px]",children:[e.jsx("button",{type:"button",className:"flex h-[26px] w-14 items-center justify-center rounded-xs text-icon-muted hover:bg-background-elevated hover:text-icon focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50","aria-label":"Aumentar una hora",onClick:()=>h("expirationHours",1),disabled:u.isPending,children:e.jsx(D,{className:"size-icon"})}),e.jsxs("div",{className:y("flex h-14 overflow-hidden rounded-sm border bg-background-subtle transition-colors",n.formState.errors.expirationHours?"border-border-error":"border-transparent",_==="expirationHours"&&"motion-safe:animate-[expiration-input-shake_320ms_ease-in-out]"),children:[e.jsx("input",{type:"number",inputMode:"numeric",maxLength:3,"aria-label":"Horas","aria-invalid":!!n.formState.errors.expirationHours,"aria-describedby":f?S:void 0,className:"h-14 w-14 bg-transparent px-2 text-center text-sm font-medium text-text outline-none [appearance:textfield] focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",...i,onChange:s=>g("expirationHours",k(s.target.value,3)),disabled:u.isPending}),e.jsx("span",{className:"flex h-14 min-w-16 items-center justify-center border-l border-border px-6 text-sm font-medium text-text-disabled",children:"hs"})]}),e.jsx("button",{type:"button",className:"flex h-[26px] w-14 items-center justify-center rounded-xs text-icon-muted hover:bg-background-elevated hover:text-icon focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50","aria-label":"Disminuir una hora",onClick:()=>h("expirationHours",-1),disabled:u.isPending,children:e.jsx(A,{className:"size-icon"})})]})}),e.jsx(O,{control:n.control,name:"expirationMinutes",render:({field:i})=>e.jsxs("div",{className:"flex flex-col items-center gap-[10px]",children:[e.jsx("button",{type:"button",className:"flex h-[26px] w-14 items-center justify-center rounded-xs text-icon-muted hover:bg-background-elevated hover:text-icon focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50","aria-label":"Aumentar un minuto",onClick:()=>h("expirationMinutes",1),disabled:u.isPending,children:e.jsx(D,{className:"size-icon"})}),e.jsxs("div",{className:y("flex h-14 overflow-hidden rounded-sm border bg-background-subtle transition-colors",n.formState.errors.expirationMinutes?"border-border-error":"border-transparent",_==="expirationMinutes"&&"motion-safe:animate-[expiration-input-shake_320ms_ease-in-out]"),children:[e.jsx("input",{type:"number",inputMode:"numeric",maxLength:2,"aria-label":"Minutos","aria-invalid":!!n.formState.errors.expirationMinutes,"aria-describedby":f?S:void 0,className:"h-14 w-14 bg-transparent px-2 text-center text-sm font-medium text-text outline-none [appearance:textfield] focu
1s-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",...i,onChange:s=>g("expirationMinutes",k(s.target.value,2)),disabled:u.isPending}),e.jsx("span",{className:"flex h-14 min-w-16 items-center justify-center border-l border-border px-6 text-sm font-medium text-text-disabled",children:"min"})]}),e.jsx("button",{type:"button",className:"flex h-[26px] w-14 items-center justify-center rounded-xs text-icon-muted hover:bg-background-elevated hover:text-icon focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50","aria-label":"Disminuir un minuto",onClick:()=>h("expirationMinutes",-1),disabled:u.isPending,children:e.jsx(A,{className:"size-icon"})})]})})]}),f&&e.jsx("p",{id:S,role:"alert",className:"text-center text-xs font-medium text-text-error",children:String(f)})]}),e.jsxs(se,{type:b?"button":"submit",size:"lg",className:y("mx-auto flex w-full max-w-[381px] gap-x-betweenTexts rounded-md text-base font-semibold tracking-[-0.32px]",b&&"bg-[#1186e3] text-white hover:bg-[#1186e3]"),disabled:!b&&(u.isPending||!n.formState.isDirty||!n.formState.isValid),children:[u.isPending&&e.jsx(ae,{className:"size-icon animate-spin"}),b?"Guardado":"Guardar"]}),e.jsx("p",{className:"text-center text-xs font-medium leading-4 text-text-muted",children:"Los cambios se verán reflejados en tus próximas transacciones."}),M&&e.jsxs(re,{className:"items-center gap-2 text-destructive",children:[e.jsx(oe,{className:"size-icon"}),e.jsx("span",{children:M})]})]})})})})})};export{we 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.