PageSourceSearch

https://scrollstop.com/assets/proposal-feedback-B3vxxkiy.js

js scrollstop.com collected 2026-09-25 20:38:57 UTC 12,144 bytes, 1 lines download raw bytes

1import{r,j as e,A as B}from"./index-dt5w-xvv.js";import{t as E}from"./oaiq-DMRX_Fwf.js";import{C as Y}from"./check-DN4SozZK.js";import{L as _}from"./loader-circle-CJCuwc-z.js";import{S as D}from"./send-aaIZqwn6.js";import{S as $}from"./sparkles-CWq46UWI.js";const u="#FF00BF",A=[{key:"ratingFit",label:"Fit",helper:"How well did the proposed strategy match your brand, market, and actual objectives?",lowLabel:"Mismatched",highLabel:"Perfectly aligned"},{key:"ratingFee",label:"Fee",helper:"How appropriate did the commercial structure feel for the opportunity, risk, and expected outcome?",lowLabel:"Poor Value",highLabel:"Great Value"},{key:"ratingFunctionality",label:"Functionality",helper:"How clear and usable did the proposal feel in practice? Was it easy to understand how the campaign would work?",lowLabel:"Confusing",highLabel:"Crystal Clear"},{key:"ratingTurnaround",label:"Turnaround",helper:"Did the proposed timeline feel realistic, fast enough, and aligned with your internal needs?",lowLabel:"Slow",highLabel:"Well paced"},{key:"ratingService",label:"Service",helper:"How confident did you feel in SCROll STOP as a partner, team, and execution layer?",lowLabel:"Not confident",highLabel:"Very Confident"}],I=["Forecasts were not strong enough","Pricing did not feel aligned","We were not ready internally","The proposal felt too complicated","The strategy did not match our true objective","We needed more proof/case studies","We chose another partner","Timing was not right","Budget was not available","Other"];function Q(){const[s,n]=r.useState(""),[i,l]=r.useState(""),[c,b]=r.useState(""),[o,d]=r.useState(""),[y,S]=r.useState(""),[j,C]=r.useState([]),[m,T]=r.useState(!1),[w,O]=r.useState({ratingFit:7,ratingFee:7,ratingFunctionality:7,ratingTurnaround:7,ratingService:7}),[N,v]=r.useState(!1),[P,F]=r.useState(!1),[k,f]=r.useState(null),R=a=>C(t=>t.includes(a)?t.filter(x=>x!==a):[...t,a]),L=r.useMemo(()=>s.trim()&&i.trim()&&/.+@.+\..+/.test(c)&&m,[s,i,c,m]),W=async a=>{if(a.preventDefault(),f(null),!L){const t=[];
1s.trim()||t.push("name"),i.trim()||t.push("company"),/.+@.+\..+/.test(c)||t.push("a valid work email"),m||t.push("the consent checkbox"),f(`Please complete: ${t.join(", ")}.`);return}v(!0);try{const t=await fetch("/api/public/proposal-feedback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s.trim(),company:i.trim(),email:c.trim(),previousProposal:o.trim(),notes:y.trim(),reasons:j,consent:m,...w})});if(!t.ok){const x=await t.json().catch(()=>({}));throw new Error(x?.error||"Submission failed")}E(),F(!0),typeof window<"u"&&window.scrollTo({top:0,behavior:"smooth"})}catch(t){f(t instanceof Error?t.message:"Something went wrong")}finally{v(!1)}};return P?e.jsx(H,{name:s,company:i}):e.jsx("main",{className:"min-h-screen bg-[#fafaf8] text-[#0a0a0a]",children:e.jsxs("div",{className:"mx-auto max-w-3xl px-6 pt-24 pb-32",children:[e.jsxs("div",{className:"mb-14",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-[#0a0a0a]/10 bg-white px-3 py-1.5 text-[11px] font-semibold uppercase tracking-[0.18em] text-[#0a0a0a]/70",children:[e.jsx("span",{className:"inline-block h-1.5 w-1.5 rounded-full",style:{background:u}}),"Private feedback · SCROll STOP"]}),e.jsx("h1",{className:"mt-6 text-4xl md:text-5xl font-semibold tracking-tight leading-[1.05]",children:"Help Us Sharpen the Next Proposal"}),e.jsxs("div",{className:"mt-6 space-y-4 text-[15px] leading-relaxed text-[#0a0a0a]/70 max-w-2xl",children:[e.jsx("p",{children:"We know not every proposal lands at the right time, in the right shape, or with the right commercial structure."}),e.jsx("p",{children:"If you previously reviewed a SCROll STOP proposal but chose not to move forward, we'd really value your honest feedback."}),e.jsx("p",{className:"text-[#0a0a0a]/55",children:"This should take less than 2 minutes."})]})]}),e.jsxs("form",{onSubmit:W,className:"space-y-10",children:[e.jsxs(h,{children:[e.jsx(g,{index:"00",children:"Your details"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsx(p,{label:"Name",children:e.jsx("input",{required:!0,value:s,onChange:a=>n(a.target.value),className:"pf-input"})}),e.jsx(p,{label:"Company",children:e.jsx("input",{required:!0,value:i,onChange:a=>l(a.target.value),className:"pf-input"})}),e.jsx(p,{label:"Work email",children:e.jsx("input",{required:!0,type:"email",value:c,onChange:a=>b(a.target.value),className:"pf-input"})}),e.jsx(p,{label:"Previous proposal / campaign discussed",children:e.jsx("input",{value:o,onChange:a=>d(a.target.value),placeholder:"e.g. Q3 Beauty creator campaign",className:"pf-input"})})]})]}),e.jsxs(h,{children:[e.jsx(g,{index:"01",children:"Grade the proposal"}),e.jsx("p",{className:"-mt-3 mb-6 text-sm text-[#0a0a0a]/55",children:"Rate each area from 1 (poor) to 10 (excellent)."}),e.jsx("div",{className:"space-y-6",children:A.map(a=>e.jsx(q,{label:a.label,helper:a.helper,lowLabel:a.lowLabel,highLabel:a.highLabel,value:w[a.key],onChange:t=>O(x=>({...x,[a.key]:t}))},a.key))})]}),e.jsxs(h,{children:[e.jsx(g,{index:"02",children:"Why did you not move forward?"}),e.jsx(p,{label:"In your own words, what stopped you from moving forward with SCROll STOP?",children:e.jsx("textarea",{rows:6,value:y,onChange:a=>S(a.target.value),placeholder:"Were the forecasts not strong enough? Did we miss your true objective? Did the strategy feel too complicated? Was the fee structure wrong? Was the timing not right? Did another partner feel like a better fit?",className:"pf-input resize-y"})})]}),e.jsxs(h,{children:[e.jsx(g,{index:"03",children:"Optional detail"}),e.jsx("p",{className:"-mt-3 mb-5 text-sm text-[#0a0a0a]/55",children:"Tick any that apply."}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:I.map(a=>{const t=j.includes(a);return e.jsxs("button",{type:"button",onClick:()=>R(a),className:`flex items-start gap-3 rounded-xl border px-4 py-3 text-left text-sm transition-colors ${t?"border-[#0a0a0a] bg-[#0a0a0a] text-white":"border-[#0a0a0a]/12 bg-white hover:border-[#0a0a0a]/40"}`,children:[e.jsx("span",{className:`mt-[2px] flex h-4 w-4 flex-none items-center justify-center rounded-[4px] border ${t?"border-white bg-white":"border-[#0a0a0a]/30"}`,children:t&&e.jsx(Y,{className:"h-3 w-3 text-[#0a0a0a]",strokeWidth:3})}),e.jsx("span",{children:a})]},a)})})]}),e.jsxs(h,{children:[e.jsxs("label",{className:"flex items-start gap-3 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:m,onChange:a=>
1T(a.target.checked),className:"mt-1 h-4 w-4 rounded border-[#0a0a0a]/30 accent-[#0a0a0a]"}),e.jsx("span",{className:"text-sm text-[#0a0a0a]/75 leading-relaxed",children:"I'm happy for SCROll STOP to use this feedback internally to improve its proposal and service process."})]}),k&&e.jsx("div",{className:"mt-5 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700",children:k}),e.jsx("button",{type:"submit",disabled:N,className:"mt-6 inline-flex w-full md:w-auto items-center justify-center gap-2 rounded-full px-7 py-3.5 text-[15px] font-semibold text-white transition-all hover:opacity-90 disabled:opacity-50",style:{background:u},children:N?e.jsxs(e.Fragment,{children:[e.jsx(_,{className:"h-4 w-4 animate-spin"})," Submitting…"]}):e.jsxs(e.Fragment,{children:[e.jsx(D,{className:"h-4 w-4"}),"Submit Feedback & Unlock Thank You Bundle"]})}),e.jsx("p",{className:"mt-3 text-xs text-[#0a0a0a]/45",children:"Your response is sent directly to the SCROll STOP strategy team."})]})]})]})})}function h({children:s}){return e.jsx("section",{className:"rounded-2xl border border-[#0a0a0a]/10 bg-white p-7 md:p-9 shadow-[0_1px_0_rgba(10,10,10,0.02),0_8px_30px_-12px_rgba(10,10,10,0.08)]",children:s})}function g({index:s,children:n}){return e.jsxs("div",{className:"mb-5 flex items-baseline gap-3",children:[e.jsx("span",{className:"text-[11px] font-mono font-semibold tracking-[0.18em] text-[#0a0a0a]/35",children:s}),e.jsx("h2",{className:"text-xl font-semibold tracking-tight",children:n})]})}function p({label:s,children:n}){return e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"mb-1.5 block text-xs font-medium uppercase tracking-wider text-[#0a0a0a]/55",children:s}),n]})}function q({label:s,helper:n,lowLabel:i,highLabel:l,value:c,onChange:b}){return e.jsxs("div",{className:"rounded-xl border border-[#0a0a0a]/8 p-5",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[15px] font-semibold tracking-tight",children:s}),e.jsx("p",{className:"mt-1 text-sm text-[#0a0a0a]/55 leading-relaxed max-w-xl",children:n})]}),e.jsxs("div",{className:"flex-none rounded-lg px-3 py-1.5 text-sm font-mono font-semibold text-white",style:{background:u},children:[c,"/10"]})]}),e.jsx("div",{className:"mt-4 grid grid-cols-10 gap-1.5",children:Array.from({length:10},(o,d)=>d+1).map(o=>{const d=o<=c;return e.jsx("button",{type:"button","aria-label":`Rate ${s} ${o} out of 10`,onClick:()=>b(o),className:`h-9 rounded-md text-xs font-semibold transition-colors ${d?"text-white":"bg-[#0a0a0a]/[0.04] text-[#0a0a0a]/40 hover:bg-[#0a0a0a]/[0.08]"}`,style:d?{background:"#0a0a0a"}:void 0,children:o},o)})}),e.jsxs("div",{className:"mt-2 flex justify-between text-[11px] font-medium uppercase tracking-wider text-[#0a0a0a]/40",children:[e.jsxs("span",{children:["1 — ",i]}),e.jsxs("span",{children:["10 — ",l]})]})]})}function H({name:s,company:n}){const i=r.useMemo(()=>{const l=new Date;return l.setFullYear(l.getFullYear()+2),l.toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"})},[]);return e.jsx("main",{className:"min-h-screen bg-[#fafaf8] text-[#0a0a0a]",children:e.jsxs("div",{className:"mx-auto max-w-2xl px-6 pt-32 pb-32",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-[#0a0a0a]/10 bg-white px-3 py-1.5 text-[11px] font-semibold uppercase tracking-[0.18em] text-[#0a0a0a]/70",children:[e.jsx($,{className:"h-3 w-3",style:{color:u}}),"Bundle preloaded"]}),e.jsxs("h1",{className:"mt-6 text-4xl md:text-5xl font-semibold tracking-tight leading-[1.05]",children:["Thank you",s?`, ${s.split(" ")[0]}`:""," — your feedback has been received."]}),e.jsxs("p",{className:"mt-5 text-[15px] leading-relaxed text-[#0a0a0a]/70",children:["As a thank you, we'll preload a SCROll STOP"," ",e.jsx("span",{className:"font-semibold text-[#0a0a0a]",children:"Thank You Bundle"})," ","against ",n?`${n}'s`:"your"," account."]}),e.jsx("p",{className:"mt-3 text-[15px] leading-relaxed text-[#0a0a0a]/70",children:"If your brand chooses to work with SCROll STOP within the next 2 years and commits to a qualifying minimum spend, your bundle can be activated against your future campaign."}),e.jsxs("div",{className:"mt-8 rounded-2xl border border-[#0a0a0a]/10 bg-white p-7",children:[e.jsx("div",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[#0a0a0a]/50",children:"Bundle includes up to"}),e.jsx("ul",{className:"mt-5 space-y-3",children:["100,000 extra campaign views","2 free creators","10,000 additional creator promo emails within your niche"].map(l=>e.jsxs("li",{className:"flex items-start gap-3 text-[15px]",children:[e.jsx("span",{className:"mt-1 inline-block h-1.5 w-1.5 flex-none rounded-full",style:{background:u}}),e.jsx("span",{children:l})]},l))}),e.jsxs("div",{className:"mt-6 border-t border-[#0a0a0a]/10 pt-4 text-xs text-[#0a0a0a]/50 leading-relaxed",children:["The Thank You Bundle is only activated 
1when a qualifying SCROll STOP service agreement is confirmed within 24 months of submission. Final bundle allocation is subject to campaign type, market, creator availability, and agreed scope.",e.jsxs("div",{className:"mt-2 text-[#0a0a0a]/70",children:["Your bundle is eligible until"," ",e.jsx("span",{className:"font-semibold text-[#0a0a0a]",children:i}),"."]})]})]}),e.jsxs("a",{href:"/",className:"mt-10 inline-flex items-center gap-2 text-sm font-semibold text-[#0a0a0a] hover:opacity-70",children:["Back to SCROll STOP ",e.jsx(B,{className:"h-4 w-4"})]})]})})}export{Q as component};

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.