1import{f as pe}from"/build/_shared/chunk-KXNW577J.js";import"/build/_shared/chunk-BM3QBHZU.js";import"/build/_shared/chunk-RAQE33EU.js";import"/build/_shared/chunk-2G3BUNAD.js";import{a as ue}from"/build/_shared/chunk-S2I5YMHW.js";import{a as ce}from"/build/_shared/chunk-LXYKMAPX.js";import{e as le}from"/build/_shared/chunk-6XX3ATVP.js";import"/build/_shared/chunk-H5UJJ74Q.js";import{d as me,e as de,g as N}from"/build/_shared/chunk-J24524FQ.js";import{A as ae,D as A,E as h,F as M,T as ie,b as ne,z as re}from"/build/_shared/chunk-TQS5E2SK.js";import{e as ee,k as oe,v as se,w as te}from"/build/_shared/chunk-RBFCHJWR.js";import"/build/_shared/chunk-GZJBGZQO.js";import{a as G}from"/build/_shared/chunk-JUM7J4TY.js";import{a as T}from"/build/_shared/chunk-RW7BUM27.js";import{e as b}from"/build/_shared/chunk-ADMCF34Z.js";var c=b(G());var fe=b(G());var t=b(T());function H({bonus:l,onCancelClick:B}){var m;let[E,S]=(0,fe.useState)(!1),D=N().shape({tandc:me().required("Terms and conditions must be agreed in order to claim promotion")}),g=y=>{y.preventDefault(),S(!0)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"bonus-confirmation-block flex flex-col p-4 pt-6 gap-4 bg-activeBonusesBackgroundColor rounded-lg text-gray-2 ",children:(0,t.jsxs)(M,{className:"bg-transparent !important",schema:D,submitting:!1,submitButtonComponent:(0,t.jsx)(pe,{...l,bonusType:(m=l.bonusType)!=null?m:"",isOptedIn:!1,optInButtonText:"Claim Promotion",buttonClassName:"w-full"}),children:[(0,t.jsxs)("div",{className:"bonus-info-text text-sm text-activeBonusesTextColor leading-[24px] pb-2",children:[l.displayName&&(0,t.jsx)("p",{className:"font-bold underline",children:l.displayName}),l.description||l.detailedDescription&&(0,t.jsx)("p",{children:l.detailedDescription||l.description}),l.termsAndConditions&&(0,t.jsx)("a",{className:"block text-activeBonusesLinkTextColor cursor-pointer underline",onClick:g,children:"View Terms and Conditions"})]}),(0,t.jsx)(h,{label:"I agree the Terms & Conditions for this promotion.",name:"tandc",type:"checkbox"})]})}),(0,t.jsx)("div",{className:"flex justify-center mt-4",children:(0,t.jsx)("a",{className:"text-greyDove underline cursor-pointer",onClick:B,children:"Cancel"})})]}),(0,t.jsx)(ie,{title:"Ts&Cs",isModalOpen:E,setIsModalOpen:S,closeSvgSource:"/images/close-icon.svg",modalClassName:"max-w-[480px]",children:(0,t.jsx)("p",{children:l.termsAndConditions})})]})}var n=b(T());function Te({onCloseClick:l,menuItems:B,profile:E,liveHelpUrl:S,liveHelpEnabled:D}){var z,_;let g=se("root"),{loginFormLoadingSVG:m,infoTickIcon:y}=g==null?void 0:g.siteConfig,{bonuses:F}=g,O=ee(),ge=B==null?void 0:B.map(e=>{var a,r;return{title:e==null?void 0:e.Title,text:e==null?void 0:e.Text,icon:(a=e==null?void 0:e.Icon)==null?void 0:a.Url,link:{Href:(r=e.link)==null?void 0:r.url},onClick:u=>{var p,f,o;(f=(p=e.link)==null?void 0:p.url)!=null&&f.startsWith("/")&&(u.preventDefault(),O((o=e.link)==null?void 0:o.url))}}}),i=te(),v=oe(),[I,w]=(0,c.useState)([]),[R,L]=(0,c.useState)(""),[W,U]=(0,c.useState)(!1),[$,j]=(0,c.useState)(!1),[Ce,x]=(0,c.useState)(!1),[C,K]=(0,c.useState)(void 0),[P,Y]=(0,c.useState)(-1);(0,c.useEffect)(()=>{var e,a,r,u;i.state==="idle"&&(i==null?void 0:i.data)!==void 0&&(((a=(e=i.data)==null?void 0:e.message.errors)==null?void 0:a.length)>0?w((r=i.data)==null?void 0:r.message.errors):i.data&&!C&&(K((u=i.data)==null?void 0:u.message),x(!0)),U(!1))},[i.state,i==null?void 0:i.data]),(0,c.useEffect)(()=>{var e,a,r,u,p,f;if(P>-1&&v[P]){let o=v[P];if(!((e=o==null?void 0:o.data)!=null&&e.isSuccessfulResponse)&&((a=o==null?void 0:o.data)!=null&&a.promoErrors)){let d=o==null?void 0:o.data;((r=d==null?void 0:d.promoErrors)==null?void 0:r.length)>0&&w(d.promoErrors),x(!1)}(u=o==null?void 0:o.data)!=null&&u.isSuccessfulResponse&&typeof((p=o==null?void 0:o.data)==null?void 0:p.promoSuccessMessage)=="string"&&(L(`${(f=C==null?void 0:C.description)!=null?f:"Your bonus"} has been successfully added to your account. You can check your bonus in Active Bonus now.`),x(!1)),Y(-1)}v.forEach((o,d)=>{o.formAction==="/actions/optIn"&&(j(!0),Y(d))})},[v]);let q,be=(e,a)=>(clearTimeout(q),new Promise(r=>{q=setTimeout(async()=>{var u,p,f,o,d,J,Q,V,X,Z;
1if((e===""||/\s/g.test(e))&&r(a.createError({message:"Please enter a valid bonus code"})),F[e]&&!((u=F[e])!=null&&u.canBeClaimed)&&r(a.createError({message:"Bonus cannot be claimed"})),(e==null?void 0:e.length)>0){let s=await(await ue(`/actions/getBonusWithPromoCode?promoCode=${e}`)).json();((f=(p=s==null?void 0:s.message)==null?void 0:p.errors)==null?void 0:f.length)>0?((s==null?void 0:s.statusCode)===404&&r(a.createError({message:"Incorrect Bonus Code"})),r(a.createError({message:((d=(o=s==null?void 0:s.message)==null?void 0:o.errors[0])==null?void 0:d.detail)||((Q=(J=s==null?void 0:s.message)==null?void 0:J.errors[0])==null?void 0:Q.title)}))):((V=s==null?void 0:s.errors)==null?void 0:V.length)>0&&r(a.createError({message:((X=s==null?void 0:s.errors[0])==null?void 0:X.detail)||((Z=s==null?void 0:s.errors[0])==null?void 0:Z.title)}))}r(!0)},800)})),k={};k=de(),k=k.test({name:"bonus-code-error",test:be});let Be=N().shape({bonusCode:k}),ye=()=>{le({event:"back_click"}),O("/#menu")},ve=e=>{x(!1)},xe=e=>{K(void 0),w([]),L(""),j(!1),i.load(`/actions/getBonusWithPromoCode?promoCode=${e.bonusCode}`),U(!0)};return(0,n.jsxs)("div",{className:"flex flex-col h-full",children:[(0,n.jsx)(re,{username:ce(E),backIconSrc:"/images/back-icon.svg",accountIconSrc:"/images/account-icon.svg",closeIconSrc:"/images/close-icon.svg",menuTitle:"BONUSES",menuUserClasses:"text-bonusesAccountMenuHeaderTopColor",menuTitleClasses:"text-bonusesAccountMenuHeaderBottomColor",onBackIconClick:()=>{ye()},onCloseIconClick:()=>{l()}}),C&&Ce?(0,n.jsx)(H,{bonus:C,onCancelClick:ve}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex flex-col m-4 gap-4 pt-4",children:[I.length>0&&!$&&(0,n.jsx)(A,{messageText:((z=I[0])==null?void 0:z.detail)||((_=I[0])==null?void 0:_.title),messageClassName:"text-sm font-normal",className:"border-red-1"}),R&&$&&(0,n.jsx)(A,{icon:(y==null?void 0:y.url)||"/images/info-tick-icon.svg",messageText:R,messageClassName:"text-sm font-normal"}),(0,n.jsx)(M,{schema:Be,onSubmit:xe,submitting:W,renderAsRow:!0,trimWhitespace:!0,submitButtonComponent:(0,n.jsx)(ne,{submittable:!0,label:"Submit",className:"w-auto",svgSource:m==null?void 0:m.url,loading:W,size:"large",type:"primary"}),icons:{success:"/images/green-error-icon.svg",error:"/images/error-icon.svg",spinner:m==null?void 0:m.url},children:(0,n.jsx)("div",{className:"flex-grow",children:(0,n.jsx)(h,{name:"bonusCode",type:"text",placeholder:"Enter code here",label:"Bonus code",hideMaxWidth:!0,clearOnIconClick:!0})})})]}),(0,n.jsx)(ae,{items:ge,caretSrc:"/images/right-icon.svg"})]})]})}export{Te 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.