1import{r as h,a as I,X as le,j as r,P as l}from"./app-C9gdXhSd.js";import{h as pe,g as de}from"./react-google-recaptcha-v3.esm-D1ULh7cd.js";import ue from"./PopupError-DeXUvzif.js";import me from"./PopupThanks-C9ooNv6_.js";import he from"./ReportDetail-X_cLHzE2.js";import{S as T}from"./Select-CqheGGBT.js";import{L as ge}from"./Layout-B47GEhI3.js";import"./search-sgiZ0KXA.js";import"./useUserCountry-45Z_ZGVj.js";import"./Link-ZwVJ8yI_.js";import"./AppContext-CadLncdP.js";import"./PhoneInput-t4HsuaXw.js";import"./url-ND5YOaJp.js";function _e(a=[]){return a.reduce((t,n,p)=>{const u=n==null?void 0:n.reportType,d=typeof(n==null?void 0:n.reportDetail)=="string"?n.reportDetail.trim():"";if(!u||!d)return t;const i=t.identifiers.length;return t.identifiers.push({type:u,value:d}),t.identifierOrder.push({identifierIndex:i,reportDetailIndex:p}),t},{identifiers:[],identifierOrder:[]})}function fe(a){const t=(a==null?void 0:a.report)??{},{identifiers:n,identifierOrder:p}=_e(t.reportDetails),u={identifiers:n,scam_sub_category_id:null,lost_money:0,g_recaptcha_response:"",context:"",share_with_police:!1,public_mentioning:t.publicMentioning||!1,use_data:t.useData||!1},d=Number(t.scamSubCategory);return Number.isFinite(d)&&d>=1&&(u.scam_sub_category_id=d),t.lostMoney&&(u.lost_money=Number(t.lostMoney)),t.gRecaptchaResponse&&(u.g_recaptcha_response=t.gRecaptchaResponse),t.description&&(u.context=t.description),t.sendToAuthorities!==void 0&&(u.share_with_police=t.sendToAuthorities),{identifierOrder:p,transformedData:u}}function ye(a,t){return t.reduce((n,{identifierIndex:p,reportDetailIndex:u})=>{const d=Object.entries(a).reduce((i,[y,f])=>y===`identifiers.${p}`||y.startsWith(`identifiers.${p}.`)?i.concat(f):i,[]);return d.length>0&&(n[u]=d),n},{})}function be(a){return!a||I.isCancel(a)||a.code==="ERR_CANCELED"}function xe(a,t){var p;if(((p=a.response)==null?void 0:p.status)!==422)return null;const n=a.response.data.errors||{};return{type:"validation",status:422,errors:n,rowErrors:ye(n,t),identifierOrder:t,rawData:a.response.data}}function Re(a,t,n,p,u){var d,i;if(!be(a)){if(((d=a.data)==null?void 0:d.error)!==void 0){t&&console.error(t,a.data.error),p==null||p(a);return}u(((i=a.data)==null?void 0:i.data)??a.report??null),n==null||n(a)}}function Se(a,t,n){const p=xe(a,t);n==null||n(p||a)}function je({endpoint:a,logPrefix:t,legacyAdapter:n}={}){if(!a)throw new Error("useReportSubmission requires an endpoint.");const[p,u]=h.useState(null),d=h.useRef(null),i=async(y,f,g)=>{d.current&&d.current.cancel(),d.current=I.CancelToken.source();const{identifierOrder:R,transformedData:j}=fe(y);try{const b=await I.post(a,j,{cancelToken:d.current.token});Re(b,t,f,g,u)}catch(b){Se(b,R,g)}};return n?{report:p,setReport:u,submitReport:async(f,g,R,j,b,v)=>{const w={...f};return i(w,b,v)}}:{report:p,setReport:u,submitReport:i}}function ve(a){return je({endpoint:a})}function J(a={consumerId:0,domain:"",lostMoneyOptions:[]}){var K;const{translations:t,consumerId:n,frontendLoginUrl:p,postDataReportUrl:u,domain:d,scamCategories:i,lostMoneyOptions:y}=a,{executeRecaptcha:f}=de(),[g,R]=h.useState([{id:1,reportType:d?"url":null,reportDetail:d}]),[j,b]=h.useState(i==null?void 0:i.defaultScamCategory),[v,w]=h.useState(i==null?void 0:i.defaultSubScamCategory),[O,z]=h.useState((i==null?void 0:i.defaultSubScamCategoryOptions)??[]),[M,B]=h.useState("0"),[V,G]=h.useState(""),[P,W]=h.useState(!1),[A,X]=h.useState(!1),[D,F]=h.useState(!1),[H,C]=h.useState(!1),[Q,N]=h.useState(!1),[Y,Z]=h.useState(""),[ee,S]=h.useState({}),{submitReport:k}=ve(u),E=h.useCallback(async()=>{if(!f)return;const e=await f("consumer_report_scam_form");Z(e)},[f]);h.useEffect(()=>{E()},[E]),h.useEffect(()=>{const e=new URLSearchParams(window.location.search),s=e.get("success"),o=e.get("report_submitted");s==="true"&&o==="true"?(C(!0),window.history.replaceState({},document.title,"report-a-scam")):s==="false"&&N(!0),(async()=>{const m=localStorage.getItem("pendingReportData");if(m)try{const c=JSON.parse(m);if(!n||!(c!=null&&c.report))return;const $=Number(c.report.scamSubCategory);if(!(x=>Number.isFinite(x)&&x>=1)($)||!c.report.useData){console.warn("Report data is missing required fields. Please submit a new report through the normal flow."),localStorage.removeItem("pendingReportData");return}const ce={report:{description:c.report.description||"",additionalInfo:c.report.additionalInfo||"",sendToAuthorities:c.report.sendToAuthorities||!1,publicMentioning:c.report.publicMentioning||!1,useData:c.report.useData||!1,reportDetails:c.report.reportDetails||[],scamSubCategory:$,lostMoney:Number(c.report.lostMoney)||0,gRecaptchaResponse:c.report.gRecaptchaResponse||""}};k(ce,()=>{localStorage.removeItem("pendingReportData"),S({}),C(!0);const x=window.location.pathname;window.history.replaceState({},document.title,x)},x=>{U(x)||(q(x),N(!0))})}catch{return}})()},[n,k]);const q=e=>{var s;if((s=e==null?void 0:e.data)!=null&&s.error){if(e.data.error.type==="consumer")return;if(e.data.error.type==="ip")return;{let o=[];Object.keys(e.data.error).map(_=>{Array.isArray(e.data.error[_])&&e.data.error[_].map(m=>{o.push(t[`validation_${_}_${m}`])})});return}}},L=()=>
1{if(g.length<5){const e=Math.max(...g.map(s=>s.id))+1;R([...g,{id:e,reportType:null,reportDetail:""}])}},U=e=>{if((e==null?void 0:e.type)==="validation"){const s=(e==null?void 0:e.rowErrors)||{};if(Object.keys(s).length>0)return S(s),N(!1),!0}return!1},te=e=>{if(g.length>1){const s=g.findIndex(o=>o.id===e);if(s===-1)return;R(g.filter(o=>o.id!==e)),S(o=>{const _={};return Object.keys(o).forEach(m=>{const c=Number(m);c<s?_[c]=o[m]:c>s&&(_[c-1]=o[m])}),_})}},re=e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),L())},ae=(e,s,o)=>{R(_=>_.map(m=>m.id===e?{...m,reportType:s,reportDetail:o}:m))},oe=()=>{const e=g.some(o=>o.reportType&&o.reportDetail&&o.reportDetail.trim().length>0),s=g.every(o=>!o.reportDetail||o.reportDetail.trim().length===0||o.reportType);return e&&s&&D},se=()=>oe(),ne=()=>{const s={report:{description:V,lostMoney:Number(M),gRecaptchaResponse:Y,additionalInfo:"",sendToAuthorities:P,reportDetails:g,scamSubCategory:Number(v),publicMentioning:A,useData:D}};if(!n){localStorage.setItem("pendingReportData",JSON.stringify(s)),globalThis.location.href=p;return}k(s,()=>{S({}),C(!0)},o=>{U(o)||(q(o),N(!0)),E()})},ie=e=>{var o;b(e);const s=(o=i.subCategories)==null?void 0:o[e];s&&(Object.keys(s).some(_=>{const m=s[_].value;return m?(w(m),!0):!1}),z(s))};return r.jsx("div",{className:"home-header headers-inner",children:r.jsx("div",{className:"report-a-scam-container bg-light-gray",children:H?r.jsx(me,{translations:t}):Q?r.jsx(ue,{translations:t}):r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"report-a-scam-container__logo-wrapper",children:r.jsx("img",{src:"/images/static/logo/logo-icon.svg",alt:"Scam adviser Logo",width:41,height:57})}),r.jsx("div",{className:"report-a-scam-container__header",children:t.header}),r.jsx("div",{className:"report-a-scam-container__sub-title",children:t.sub_title}),r.jsxs("div",{className:"report-a-scam-container__title-wrapper",children:[r.jsxs("div",{className:"report-a-scam-container__title",children:[t.report_type_details," ",r.jsx("span",{className:"report-a-scam-container__title-required",children:"*"})]}),r.jsx("div",{className:"report-a-scam-container__report-type",children:g.map((e,s)=>{const o=ee[s],_=Array.isArray(o)?o.join(" "):o||"";return r.jsx("div",{className:"report-a-scam-container__report-type-item",children:r.jsx(he,{translations:t,onRemove:()=>te(e.id),showRemoveButton:s>0,onDataChange:(m,c)=>ae(e.id,m,c),initialReportType:e.reportType,initialReportDetail:e.reportDetail,serverValidationError:_,onClearServerError:()=>{S(m=>{const c={...m};return delete c[s],c})}})},e.id)})}),r.jsx("div",{className:"report-a-scam-container__report-type",children:g.length<5&&r.jsxs("div",{className:"report-a-scam-container__add-report-type-item",onClick:L,onKeyDown:re,role:"button",tabIndex:0,style:{cursor:"pointer"},children:[r.jsx("img",{src:"/images/static/svg/plus.svg",alt:"Add More",width:"16",height:"16"}),r.jsx("p",{children:t.add_more})]})})]}),((K=i==null?void 0:i.categories)==null?void 0:K.length)>0&&t.scam_categories&&r.jsx("div",{className:"report-a-scam-container__title-wrapper report-a-scam-container__scam-category-select",children:r.jsx(T,{name:"scam_category_id",label:t.scam_categories,value:String(j),options:i.categories,onChange:e=>ie(e)})}),O.length>0&&t.scam_sub_categories&&r.jsx("div",{className:"report-a-scam-container__title-wrapper report-a-scam-container__scam-sub-category-select",children:r.jsx(T,{name:"scam_sub_category_id",label:t.scam_sub_categories,value:String(v),options:O,onChange:e=>w(e)})}),y.length>0&&r.jsx("div",{className:"report-a-scam-container__title-wrapper report-a-scam-container__lost-money-select",children:r.jsx(T,{name:"lost_money",label:t.lost_money_label,value:String(M),options:y,onChange:e=>B(e)})}),r.jsxs("div",{className:"report-a-scam-container__title-wrapper",children:[r.jsx("div",{className:"report-a-scam-container__title",children:t.description}),r.jsx("textarea",{rows:4,className:"report-a-scam-container__textarea",placeholder:t.textarea_placeholder,value:V,onChange:e=>G(e.target.value)})]}),r.jsxs("div",{className:"report-a-scam-container__title-wrapper",children:[r.jsx("div",{className:"report-a-scam-container__title",children:t.report_to_authorities_title}),r.jsxs("div",{className:"report-a-scam-container__checkbox-container",children:[r.jsx("input",{type:"checkbox",id:"report-to-authorities",name:"report-to-authorities",className:"report-a-scam-container__checkbox",checked:P,onChange:e=>W(e.target.checked)}),r.jsx("label",{htmlFor:"report-to-authorities",className:"report-a-scam-container__checkbox-label",children:t.report_to_authorities})]})]}),r.jsx("hr",{className:"mt-24"}),r.jsx("div",{className:"report-a-scam-container__title-wrapper",children:r.jsxs("div",{className:"report-a-scam-container__checkbox-container",children:[r.jsx("input",{type:"checkbox",id:"report-scam-public-mentioning",name:"public-mentioning",className:"report-a-scam-container__checkbox",checked:A,onChange:e=>X(e.target.checked)}),r.jsx("label",{htmlFor:"report-scam-public-mentioning",className:"report-a-scam-container__checkbox-label",children:t.public_mentioning})]})}),r.jsx("div",{className:"report-a-scam-container__title-wrapper",children:r.jsxs("div",{className:"report-a-scam-container__checkbox-container",children:[r.jsx("input",{type:"checkbox",id:"report-scam-use-data",name:"use-data",className:"report-a-scam-container__checkbox",checked:D,onChange:e=>F(e.target.checked)}),r.jsxs("label",{htmlFor:"report-scam-use-data",className:"report-a-scam-container__checkbox-label",children:[t.use_data," ",r.jsx("span",{className:"report-a-scam-container__title-required",children:"*"})]})]})}),r.jsx("div",{className:"report-a-scam-container__button-wrapper",children:r.jsx("button",{className:"report-a-scam-container__button",type:"submit",disabled:!se(),onClick:ne,children:t.report})})]})})})}
1J.propTypes={translations:l.object,consumerId:l.number,frontendLoginUrl:l.string,postDataReportUrl:l.string,domain:l.string,scamCategories:l.shape({categories:l.arrayOf(l.shape({value:l.string.isRequired,name:l.string.isRequired})),subCategories:l.oneOfType([l.object,l.array]),defaultScamCategory:l.string,defaultSubScamCategory:l.string,defaultSubScamCategoryOptions:l.arrayOf(l.shape({value:l.string.isRequired,name:l.string.isRequired}))}),lostMoneyOptions:l.arrayOf(l.shape({value:l.string.isRequired,name:l.string.isRequired}))};function we(a){const{recaptchaSiteKey:t}=le().props;return r.jsx(pe,{reCaptchaKey:t,children:r.jsx(J,{...a})})}we.layout=a=>r.jsx(ge,{children:a});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.