PageSourceSearch

https://app.hi.events/assets/promo-codes-BaLhtqOE.js

js hi.events collected 2026-10-01 10:22:10 UTC 14,396 bytes, 1 lines download raw bytes

1import{_ as oe,w as ae,z as ne,aw as le,aU as de,bV as ce,bW as pe,bX as ue,j as e,aS as me,$ as _e,aQ as xe,o as D,r as F,i as t,B as N,I as he,m as L,bY as C,q as k,J as ye}from"./index-H-7Mdjgq.js";import{u as B,G as je}from"./useGetEvent-DMiQpiL_.js";import{P as ge}from"./index-DxMQb_eP.js";import{P as be}from"./index-BVAu9I3X.js";import{h as v,i as g}from"./types-CGG0ephI.js";import{u as fe,p as Se,r as ve}from"./dates-8rjFi0lQ.js";import{B as E}from"./Badge-C29QpBn8.js";import{M as h}from"./Menu-BtL1Ji-H.js";import{T as A}from"./Tooltip-BbNYwxJq.js";import{T as p}from"./Table-Bkck1WxA.js";import{T as Ce,a as Pe}from"./index-DEUMqBC_.js";import{C as Ie}from"./index-C0oTJp0G.js";import{u as W}from"./use-clipboard-cUyoVtI8.js";import{u as U}from"./use-disclosure-B6DxwJDq.js";import{b as w,I as Te}from"./notifications-DPyM_svh.js";import{u as X}from"./use-form-D9Jyjn3K.js";import{h as Z}from"./has-length-DbFgFkdW.js";import{u as $}from"./useFormErrorResponseHandler-viwrO7mQ.js";import{N as K}from"./NumberInput-DTWnASdc.js";import{S as Ee}from"./SegmentedControl-BaV3pyH_.js";import{S as Fe}from"./Select-CUl8WB_F.js";import{T as Y}from"./TextInput-DJngKYsH.js";import{L as J}from"./index-BHPK8OyC.js";import{I as H}from"./index-AYshx105.js";import{a as Ne}from"./currency-BuWXkOSu.js";import{P as we}from"./index-BF76Ca6B.js";import{S as De,a as Me}from"./ShowHideComponents-BMYq72hz.js";import{C as qe,I as Re}from"./index-Dy5yeMe7.js";import{A as ke}from"./index-LPSwjYtV.js";import{I as Be}from"./IconRefresh-DXm8uwM2.js";import{I as Oe}from"./IconTicket-sm5V1Zzm.js";import{I as Ge}from"./IconPercentage-CCne9XUG.js";import{M as ee}from"./index-C1Qj-Ocm.js";import{B as te}from"./index-DuWrF3Ob.js";import{u as O}from"./useMutation--MIpdzpW.js";import{N as ze}from"./index-CV9HgL1j.js";import{c as Ae}from"./confirmationDialog-C7tBR8qg.js";import{e as We}from"./urlHelper-CtUM__Wf.js";import{I as se}from"./IconPlus-CTVlcGBk.js";import{I as Ke}from"./IconDotsVertical-xR9Vqo3c.js";import{I as Ye}from"./IconSend-CK-FTmrB.js";import{I as V}from"./IconCopy-BlrMLj_W.js";import{I as He}from"./IconTrash-B6R0mN6D.js";import{T as Ve,a as Qe,S as Le}from"./index-DChl75IP.js";import{P as Ue}from"./index-BUMExkA6.js";import{u as Xe}from"./useFilterQueryParamSync-3R_lRXOZ.js";import{T as Ze}from"./index-Bl_culW5.js";import"./utc-C3EVnpqr.js";import"./dayjs.min-jhmS8Dw0.js";import"./timezone-CHvflEA8.js";import"./create-scoped-keydown-handler-BD9FwJwO.js";import"./Popover-BuwKeRzp.js";import"./get-floating-position-7n5UPPCU.js";import"./create-event-handler-C3eq9ghx.js";import"./AccordionChevron-DzJ21-8m.js";import"./index-DBKgDYDB.js";import"./IconInfoCircle-DpzxY1ET.js";import"./IconX-BeJ4A9dL.js";import"./InputBase-CV4iOMG7.js";import"./clamp-DTmYCdls.js";import"./get-env-B-6RN2XZ.js";import"./Combobox-CBkX19bG.js";import"./CheckIcon-fa6XWshr.js";import"./LoadingOverlay-CLu_ym7D.js";import"./SimpleGrid-DImrleVX.js";import"./MultiSelect-Uh7S_UyC.js";import"./useWindowWidth-BlU5WJNb.js";import"./IconAlertTriangle-B4FSTlL-.js";import"./Collapse-B08Wcx-V.js";import"./IconChevronRight-B_O7pWbK.js";import"./IconSearch-DOvTLW64.js";import"./Pagination-PYXMbajw.js";import"./get-auto-contrast-value-Da6zqqWm.js";import"./Skeleton-DxmOCu5F.js";const $e={gap:{type:"spacing",property:"gap"},rowGap:{type:"spacing",property:"rowGap"},columnGap:{type:"spacing",property:"columnGap"},align:{type:"identity",property:"alignItems"},justify:{type:"identity",property:"justifyContent"},wrap:{type:"identity",property:"flexWrap"},direction:{type:"identity",property:"flexDirection"}};var re={root:"m_8bffd616"};const G=oe(s=>{const o=ae("Flex",null,s),{classNames:i,className:n,style:l,styles:d,unstyled:a,vars:c,gap:_,rowGap:m,columnGap:x,align:y,justify:j,wrap:b,direction:r,attributes:q,...R}=o,P=ne({name:"Flex",classes:re,props:o,className:n,style:l,classNames:i,styles:d,unstyled:a,attributes:q,vars:c}),I=le(),T=de(),u=ce({styleProps:{gap:_,rowGap:m,columnGap:x,align:y,justify:j,wrap:b,direction:r},theme:I,data:$e}),f=pe(),S=f&&u.hasResponsiveStyles?ue(u.styles,u.media):T;return e.jsxs(e.Fragment,{children:[u.hasResponsiveStyles&&e.jsx(me,{selector:`.${S}`,styles:u.styles,media:u.media,deduplicate:f}),e.jsx(_e,{...P("root",{className:S,style:xe(u.inlineStyles)}),...R})]})});G.classes=re;G.displayName="@mantine/core/Flex";const Q=s=>{var o;return!!((((o=s.values.applicable_product_ids)==null?void 0:o.length)??0)>0||s.values.expiry_date||s.values.max_allowed_usages)},ie=({form:s})=>{const{eventId:o}=D(),{data:i,data:{product_categories:n}={}}=B(o),[l,d]=F.useState(()=>Q(s));F.useEffect(()=>{Q(s)&&d(!0)},[s.values.applicable_product_ids,s.values.expiry_date,s.values.max_allowed_usages]);const a=Ne(i==null?void 0:i.currency),c=()=>s.values.discount_type==="PERCENTAGE"?e.jsx(Ge,{}):a;if(!i||!n)return e.jsx(J,{});const _=()=>{const m=Math.random().toString(36).substring(2,10).toUpperCase();s.setFieldValue("code",m)};return e.jsxs(e.Fragment,{children:[e.jsx(Y,{...s.getInputProps("code"),label:t._({id:"EWPtMO"}),placeholder:"20OFF",required:!0,rightSection:e.jsxs(N,{variant:"subtle",size:"xs",color:"gray",onClick:_,style:{fontWeight:400},title:t._({id:"exy8uo"}),leftSection:e.jsx(Be,{size:16}
1),children:[e.jsx(De,{children:t._({id:"ziAjHi"})}),e.jsx(Me,{children:t._({id:"exy8uo"})})]}),rightSectionWidth:"auto"}),e.jsxs(H,{children:[e.jsx(Fe,{...s.getInputProps("discount_type"),label:t._({id:"C8JLas"}),data:[{value:"NONE",label:t._({id:"fFeCKc"})},{value:"PERCENTAGE",label:t._({id:"/roQKz"})},{value:"FIXED",label:t._({id:"irpUxR"})}]}),e.jsx(K,{disabled:s.values.discount_type===v.None,decimalScale:2,min:0,rightSection:e.jsx(c,{}),...s.getInputProps("discount"),label:s.values.discount_type==="PERCENTAGE"?t._({id:"ypJ62C"}):t._({id:"3LtiBI",values:{0:i.currency}}),placeholder:"0.00"})]}),s.values.discount_type===v.Fixed&&e.jsx(he.Wrapper,{label:t._({id:"49Tkiw"}),description:s.values.discount_applies_to===g.Order?t._({id:"sKL8k2"}):t._({id:"7oksH+",values:{currencySymbol:a}}),children:e.jsx(Ee,{fullWidth:!0,mt:4,value:s.values.discount_applies_to??g.EachProduct,onChange:m=>s.setFieldValue("discount_applies_to",m),data:[{value:g.Order,label:t._({id:"RRlWVA"})},{value:g.EachProduct,label:t._({id:"Xfsjel"})}],"data-testid":"promo-code-discount-applies-to"})}),s.values.discount_type===v.None&&e.jsx(qe,{icon:e.jsx(Re,{size:18,stroke:2}),variant:"info",title:t._({id:"lTPqpM"}),children:t._({id:"ZthcdI"})}),e.jsxs(ke,{opened:l,onToggle:()=>d(m=>!m),dataTestId:"promo-code-advanced-toggle",children:[e.jsx(we,{label:t._({id:"hFHnxR"}),placeholder:t._({id:"C4Y1hA"}),icon:e.jsx(Oe,{size:"1rem"}),productCategories:n,form:s,productFieldName:"applicable_product_ids"}
1),e.jsxs(H,{children:[e.jsx(Y,{type:"datetime-local",...s.getInputProps("expiry_date"),label:t._({id:"uaSvqt"})}),e.jsx(K,{min:1,placeholder:t._({id:"NIuIk1"}),...s.getInputProps("max_allowed_usages"),label:t._({id:"ySxKZe"})})]})]})]})},z="getPromoCode",Je=(s,o)=>L({queryKey:[z,s,o],queryFn:async()=>{const{data:i}=await C.findById(s,o);return i}}),M="getEventPromoCodes",et=(s,o)=>L({queryKey:[M,s,o],queryFn:async()=>await C.all(s,o)}),tt=()=>{const s=k();return O({mutationFn:({eventId:o,promoCodeId:i,promoCodeData:n})=>C.update(o,i,n),onSuccess:()=>{s.invalidateQueries({queryKey:[M]}),s.invalidateQueries({queryKey:[z]})}})},st=({onClose:s,promoCodeId:o})=>{const{eventId:i}=D(),n=$(),l=Je(i,o),{data:d}=B(i),{data:a}=l,c=X({initialValues:{code:"",discount:void 0,applicable_product_ids:[],expiry_date:void 0,discount_type:void 0,max_allowed_usages:void 0},validate:{code:Z({min:3,max:50},t._({id:"ercTDX"}))},validateInputOnBlur:!0}),_=tt(),m=x=>{_.mutate({promoCodeId:o,eventId:i,promoCodeData:x},{onSuccess:()=>{w(t._({id:"70dYC8"})),c.reset(),s()},onError:y=>n(c,y)})};return F.useEffect(()=>{!a||!d||c.setValues({code:a.code,discount:a.discount,applicable_product_ids:a.applicable_product_ids?a.applicable_product_ids.map(x=>x.toString()):[],expiry_date:fe(a.expiry_date,d.timezone),discount_type:a.discount_type,discount_applies_to:a.discount_applies_to??g.EachProduct,max_allowed_usages:a.max_allowed_usages||void 0})},[a,d]),e.jsxs(ee,{opened:!0,onClose:s,heading:t._({id:"9BdS63"}),children:[e.jsxs("form",{onSubmit:c.onSubmit(m),children:[e.jsx(ie,{form:c}),e.jsx(te,{type:"submit",fullWidth:!0,mt:"lg",disabled:_.isPending,children:_.isPending?t._({id:"hqmXmc"}):t._({id:"9BdS63"})})]}),e.jsx(J,{})]})},rt=()=>{const s=k();return O({mutationFn:({promoCodeId:o,eventId:i})=>C.delete(i,o),onSuccess:(o,i)=>{s.invalidateQueries({queryKey:[z,i.eventId,i.promoCodeId]}),s.invalidateQueries({queryKey:[M]})}})},it=({event:s,promoCodes:o,openCreateModal:i})=>{var b;const[n,l]=F.useState(),[d,{open:a,close:c}]=U(!1),_=rt(),m=W({timeout:500}),x=(b=s.product_categories)==null?void 0:b.flatMap(r=>r.products),y=r=>{l(r),a()},j=r=>{Ae(t._({id:"YgRSEE"}),()=>{_.mutate({eventId:s.id,promoCodeId:r})},{confirm:t._({id:"cnGeoo"}),cancel:t._({id:"dEgA5A"})})};return o.length===0?e.jsx(ze,{heading:t._({id:"+Y976X"}),imageHref:"/blank-slate/promo-codes.svg",subHeading:e.jsxs(e.Fragment,{children:[e.jsx("p",{children:t._({id:"BZ9GWa"})}),e.jsx(N,{size:"xs",leftSection:e.jsx(se,{}),color:"green",onClick:()=>i(),children:t._({id:"6kdXbW"})})]})}):e.jsxs(e.Fragment,{children:[e.jsxs(Ce,{children:[e.jsx(Pe,{children:e.jsxs(p.Tr,{children:[e.jsx(p.Th,{children:t._({id:"EWPtMO"})}),e.jsx(p.Th,{children:t._({id:"H6Ma8Z"})}),e.jsx(p.Th,{children:t._({id:"s/0RpH"})}),e.jsx(p.Th,{children:t._({id:"N0qXpE"})}),e.jsx(p.Th,{children:t._({id:"KnN1Tu"})}),e.jsx(p.Th,{})]})}),e.jsx(p.Tbody,{children:o==null?void 0:o.map(r=>{var P,I,T;const q=()=>(r==null?void 0:r.discount)===0?e.jsx(e.Fragment,{children:t._({id:"EdQY6l"})}):r.discount_type===v.Fixed?e.jsxs(e.Fragment,{children:[e.jsx(Ie,{currency:s.currency,price:r.discount})," ",r.discount_applies_to===g.Order?t._({id:"+kvxv+"}):t._({id:"NhuGd7"})]}):e.jsxs(e.Fragment,{children:[r.discount,"%"]}),R=()=>{const u=W({timeout:500});return e.jsx(E,{variant:"outline",title:t._({id:"sby+1/"}),style:{cursor:"pointer",alignItems:"center"},rightSection:e.jsx(G,{children:u.copied?e.jsx(Te,{color:"green",size:"12"}):e.jsx(V,{size:"12"})}),onClick:()=>{u.copy(r.code.toUpperCase()),w(`${r==null?void 0:r.code.toUpperCase()} ${t._({id:"T5rdis"})}`)},children:r.code.toUpperCase()})};return e.jsxs(p.Tr,{children:[e.jsx(p.Td,{children:e.jsx(R,{})}),e.jsx(p.Td,{children:e.jsx(E,{color:"cyan",variant:"light",children:e.jsx(q,{})})}),e.jsxs(p.Td,{children:[r.order_usage_count," / ",r.max_allowed_usages?r.max_allowed_usages:e.jsx("span",{title:t._({id:"E0q9qH"}),children:"∞"})]}),e.jsx(p.Td,{children:e.jsxs("div",{style:{cursor:"pointer"},children:[((P=r.applicable_product_ids)==null?void 0:P.length)===0&&e.jsx(E,{variant:"light",color:"primary",children:t._({i
1d:"cde2hc"})}),Number((I=r.applicable_product_ids)==null?void 0:I.length)>0&&e.jsx(A,{label:x==null?void 0:x.filter(u=>{var f,S;return(S=(f=r.applicable_product_ids)==null?void 0:f.map(Number))==null?void 0:S.includes(Number(u.id))}).map(u=>e.jsxs(e.Fragment,{children:[u.title,e.jsx("br",{})]})),children:e.jsxs(E,{variant:"light",color:"pink",children:[(T=r.applicable_product_ids)==null?void 0:T.length," ",t._({id:"ktyvbu"})]})})]})}),e.jsx(p.Td,{children:r.expiry_date?e.jsx(A,{label:Se(String(r.expiry_date),s.timezone),children:e.jsx("span",{children:ve(String(r.expiry_date))})}):t._({id:"qqeAJM"})}),e.jsx(p.Td,{children:e.jsx(ye,{wrap:"nowrap",gap:0,justify:"flex-end",children:e.jsxs(h,{shadow:"md",width:200,children:[e.jsx(h.Target,{children:e.jsx(N,{size:"xs",variant:"transparent","data-testid":"promo-code-actions-button",children:e.jsx(Ke,{})})}),e.jsxs(h.Dropdown,{children:[e.jsx(h.Label,{children:t._({id:"wckWOP"})}),e.jsx(h.Item,{leftSection:e.jsx(Ye,{size:14}),onClick:()=>y(r==null?void 0:r.id),children:t._({id:"iFgaVN"})}),e.jsx(h.Item,{leftSection:e.jsx(V,{size:14}),onClick:()=>{m.copy(We(s)+`?promo_code=${r==null?void 0:r.code}`),w(t._({id:"UtDm3q"}))},children:t._({id:"E6nRW7"})}),e.jsx(h.Divider,{}),e.jsx(h.Label,{children:t._({id:"Zz6Cxn"})}),e.jsx(h.Item,{color:"red",onClick:()=>j(r==null?void 0:r.id),leftSection:e.jsx(He,{size:14}),children:t._({id:"WHf154"})})]})]})})})]})})})]}),n&&d&&e.jsx(st,{promoCodeId:n,onClose:c})]})},ot=()=>{const s=k();return O({mutationFn:({eventId:o,promoCodeData:i})=>C.create(o,i),onSuccess:(o,i)=>(s.invalidateQueries({queryKey:[je,i.eventId]}),s.invalidateQueries({queryKey:[M]}))})},at=({onClose:s})=>{const{eventId:o}=D(),i=$(),n=ot(),l=X({initialValues:{code:"",discount:void 0,applicable_product_ids:[],expiry_date:void 0,discount_type:v.None,discount_applies_to:g.Order,max_allowed_usages:void 0},validate:{code:Z({min:3,max:50},t._({id:"ercTDX"}))},validateInputOnBlur:!0}),d=a=>{n.mutate({eventId:o,promoCodeData:{...a}},{onSuccess:()=>{w(t._({id:"9mZEgt"})),l.reset(),s()},onError:c=>i(l,c)})};return e.jsx(ee,{opened:!0,onClose:s,heading:t._({id:"sYpiZP"}),children:e.jsxs("form",{onSubmit:l.onSubmit(d),children:[e.jsx(ie,{form:l}),e.jsx(te,{type:"submit",fullWidth:!0,mt:"lg",disabled:n.isPending,"data-testid":"promo-code-submit-button",children:n.isPending?t._({id:"hqmXmc"}):t._({id:"sYpiZP"})})]})})},Ts=()=>{var x,y;const{eventId:s}=D(),{data:o}=B(s),[i,n]=Xe(),l=et(s,i),d=(x=l==null?void 0:l.data)==null?void 0:x.data,a=(y=l==null?void 0:l.data)==null?void 0:y.meta,[c,{open:_,close:m}]=U(!1);return e.jsxs(e.Fragment,{children:[e.jsxs(be,{children:[e.jsx(ge,{subheading:t._({id:"Nc3l/D"}),children:t._({id:"RVb8Fo"})}),e.jsx(Ve,{searchComponent:()=>e.jsx(Le,{placeholder:t._({id:"BiYOdA"}),setSearchParams:n,searchParams:i}),filterComponent:a!=null&&a.allowed_sorts?e.jsx(Qe,{selected:i.sortBy&&i.sortDirection?i.sortBy+":"+i.sortDirection:a.default_sort+":"+a.default_sort_direction,options:a.allowed_sorts,onSortSelect:(j,b)=>{n({sortBy:j,sortDirection:b})}}):void 0,resultCount:a==null?void 0:a.total,resultLabel:t._({id:"tZqL0q"}),children:e.jsx(N,{color:"green",size:"sm",onClick:_,rightSection:e.jsx(se,{}),"data-testid":"promo-code-create-button",children:"Create"})}),e.jsx(Ze,{isVisible:!d||!o}),d&&o&&e.jsx(it,{openCreateModal:_,event:o,promoCodes:d}),!!(d!=null&&d.length)&&e.jsx(Ue,{value:i.pageNumber,onChange:j=>n({pageNumber:j}),total:Number(a==null?void 0:a.last_page)})]}),c&&e.jsx(at,{onClose:m,isOpen:!0})]})};export{Ts as PromoCodes,Ts 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.