PageSourceSearch

https://slantapp.ai/assets/NFLEuropeCreatorBrief-CGnyNtTe.js

js slantapp.ai collected 2026-10-05 15:05:52 UTC 14,829 bytes, 1 lines download raw bytes

1import{b6 as W,c as H,r as x,W as Y,F as _,j as e,B as m,o as E,O as q,C as n,a as i,c4 as P,U as V,am as z,K as h,N as p,n as I,an as K,S as U,Z,a4 as R,L as Q,d as J}from"./index-tc5-nNLC.js";import{u as X,t as D}from"./zod-Bu1KJ1kD.js";import{F as ee,a as N,b as w,c as k,d as v,e as y}from"./form-BdD-KO2h.js";import{S as se,a as te,b as ae,c as re,d as le}from"./select-Bsa-6vNv.js";import{d as O}from"./nflEurope-CzTDKijY.js";import{A as ne}from"./arrow-left-kYemJdx8.js";import{C}from"./copy-Bquar6tk.js";import{G as ie}from"./globe-CrY5Q3gB.js";import{M as oe}from"./message-square-BbWo1nY5.js";import{C as ce}from"./circle-check-B8vEXYAG.js";import{M as de}from"./mouse-pointer-click-CUquD_H1.js";import{C as me}from"./chart-no-axes-column-BmSaB_RF.js";import{o as xe,s as S,ak as he,e as pe}from"./types-BkAQ3Jcx.js";import"./label-MwGx_WS4.js";import"./index-C-y5wYFI.js";import"./chevron-down-DOFZ7rzv.js";import"./chevron-up-1gTexUQn.js";const ge=[{format:"TikTok / Reels (15–60s)",icon:K,description:"Problem-first hooks perform best. Lead with city name + pain point in first 2 seconds.",example:'"Flying to see your team in London and have NO idea where to stay?"',cta:"End with: 'Link in bio for the free Game Weekend Pass'"},{format:"YouTube (8–15 min)",icon:ie,description:"Full itinerary walkthroughs and city guides. High search value, long shelf life.",example:'"London 2025: Complete Fan Travel Guide (Flights, Hotels, Game Day)"',cta:"Include affiliate link in description + pinned comment"},{format:"Instagram (Carousel / Story)",icon:U,description:"Neighborhood breakdowns and transit tips work well as carousels. Stories for live game-week coverage.",example:'"5 neighborhoods to stay for a London game weekend — which is right for you? [swipe]"',cta:"Sticker link on Stories, bio link on posts"},{format:"Blog / Long-form",icon:oe,description:"SEO-focused content captures fans in early planning mode. High intent, evergreen value.",example:'"Where to Stay for London Game Weekend: The Complete Neighborhood Guide (2025)"',cta:"Embed Game Weekend Pass widget or CTA block"}],ue=["Register below to get your unique referral link","Share the link in your content — bio, description, or pinned comment","Fans click through and claim their free Game Weekend Pass","Every conversion is tracked to your creator account","Earn commission on partner offer redemptions from your referrals"],fe=xe({handle:S().min(2,"Enter your social handle").max(100),platform:pe(["tiktok","youtube","instagram","blog","twitter","other"],{required_error:"Select your primary platform"}),name:S().optional(),email:S().email("Enter a valid email").optional().or(he(""))}),be={tiktok:"TikTok",youtube:"YouTube",instagram:"Instagram",blog:"Blog / Website",twitter:"X / Twitter",other:"Other"};function Ge(){const[,g]=W("/fan-travel/:citySlug/creator-brief"),r=(g==null?void 0:g.citySlug)||"london",t=O(r),{toast:o}=H(),[G,T]=x.useState(null),[F,L]=x.useState(!1),[l,$]=x.useState(null),u=`nfl_creator_code_${r}`;x.useEffect(()=>{const s=localStorage.getItem(u);s&&$(s)},[u]);const{data:f}=Y({queryKey:["/api/nfl/creator/stats",l],enabled:!!l,refetchInterval:3e4,queryFn:async()=>{const s=await fetch(`/api/nfl/creator/stats/${l}`);if(!s.ok)throw new Error("Failed to load stats");return s.json()}}),c=X({resolver:D(fe),defaultValues:{handle:"",platform:void 0,name:"",email:""}}),b=_({mutationFn:async s=>{const a=await fetch("/api/nfl/creator/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,cityId:r})});if(!a.ok){const d=await a.json();throw new Error(d.message||"Registration failed")}return a.json()},onSuccess:s=>{$(s.code),localStorage.setItem(u,s.code),o({title:s.existing?"Welcome back!":"You're in the Creator Network!",description:s.existing?"Your existing referral link has been loaded.":"Your personal referral link is ready to share."})},onError:s=>{o({title:"Registration failed",description:s.message,variant:"destructive"})}}),j=l?`${window.location.origin}/fan-travel/${r}?ref=${l}`:null,A=s=>{navigator.clipboard.writeText(s),L(!0),setTimeout(()=>L(!1),2e3),o({title:"Referral link copied!"})},B=(s,a)=>{navigator.clipboard.writeText(s.replace(/"/g,"")),T(a),setTimeout(()=>T(null),2e3),o({title:"Copied to clipboard"})},M=[{label:`${t==null?void 0:t.name} City Guide`,href:`/fan-travel/${r}`},{label:"Game Weekend Pass",href:`/presale?city=${r}`},{label:"Fan Travel Hub",href:"/fan-travel"}];return e.jsxs("div",{className:"min-h-screen bg-[#0A0F1E]",children:[e.jsx("div",{className:`bg-gradient-to-r ${(t==null?void 0:t.colors.gradient)||"from-purple-900 to-indigo-900"} border-b border-white/10`,children:e.jsxs("div",{className:"container mx-auto px-4 py-6",children:[e.jsx("div",{className:"flex items-center gap-3 mb-4",children:e.jsx(m,{variant:"ghost",size:"sm",className:"text-white/60 hover:text-white hover:bg-white/10",asChild:!0,children:e.jsxs(E,{href:`/fan-travel/${r}`,children:[e.jsx(ne,{className:"w-4 h-4 mr-1"})," Back to ",t==null?void 0:t.name]})})}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-4xl",children:t==null?void 0:t.flag}),e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-white",children:[t==null?void 0:t.name," Creator Brief"]}),e.jsx("p",{className:"text-white/60 text-sm",children:"Fan International Travel · Content Partner Program"})]}),e.jsx(q,{className:"ml-auto bg-purple-500/20 text-purple-300 border-purple-500/30",children:"Creator Network"})]})]})}),e.jsx("div",{className:"container mx-auto px-4 py-8",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[e.jsx(n,{className:"bg-gradient-to-br from-purple-900/30 to-indigo-900/30 border-purple-500/20",children:e.jsx(i,{className:"p-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl bg-purple-500/20 flex items-center justify-center flex-shrink-0",children:e.jsx(P,{className:"w-5 h-5 text-purple-400"})}),e.jsxs("div",{children:[e.jsxs("h2",{className:"text-white font-semibold mb-1",children:["The ",t
1==null?void 0:t.name," Opportunity"]}),e.jsxs("p",{className:"text-slate-400 text-sm leading-relaxed",children:["Thousands of fans are searching for travel guidance for the ",t==null?void 0:t.name," game. Most don't know where to stay, how to get to the stadium, or which bars to hit. You do. That's the content gap — and it converts."]}),e.jsx("div",{className:"flex gap-4 mt-4",children:[{icon:V,label:"High-intent audience"},{icon:z,label:"Evergreen SEO value"},{icon:P,label:"Zero competition"}].map(({icon:s,label:a})=>e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-slate-400",children:[e.jsx(s,{className:"w-3.5 h-3.5 text-purple-400"}),a]},a))})]})]})})}),e.jsxs(n,{className:"bg-slate-900/60 border-slate-800",children:[e.jsx(h,{className:"pb-3",children:e.jsx(p,{className:"text-white text-sm",children:"Proven Content Angles"})}),e.jsx(i,{className:"space-y-3",children:((t==null?void 0:t.contentAngles)||[`"I flew to ${t==null?void 0:t.name} for the game and here's what I wish I'd known"`,'"Best neighborhoods to stay for game weekend (ranked by price + proximity)"',`"${t==null?void 0:t.name} game day guide — transit, pubs, fan zones, everything"`,`"How to get from ${t==null?void 0:t.name} airport to the stadium without a taxi"`]).map((s,a)=>e.jsxs("div",{className:"flex items-start gap-2 p-3 rounded-lg bg-slate-800/40 hover:bg-slate-800 transition-colors group cursor-pointer",onClick:()=>B(s,a),"data-testid":`angle-${a}`,children:[e.jsx("div",{className:"flex-1",children:e.jsx("p",{className:"text-sm text-amber-300 italic",children:s})}),e.jsx(m,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 text-slate-500 group-hover:text-white flex-shrink-0",children:G===a?e.jsx(I,{className:"w-3 h-3 text-green-400"}):e.jsx(C,{className:"w-3 h-3"})})]},a))})]}),e.jsxs(n,{className:"bg-slate-900/60 border-slate-800",children:[e.jsx(h,{className:"pb-3",children:e.jsx(p,{className:"text-white text-sm",children:"Format Playbook"})}),e.jsx(i,{children:e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:ge.map(s=>{const a=s.icon;return e.jsxs("div",{className:"p-4 rounded-xl bg-slate-800/40 border border-slate-700",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(a,{className:"w-4 h-4 text-purple-400"}),e.jsx("p",{className:"text-sm font-semibold text-white",children:s.format})]}),e.jsx("p",{className:"text-xs text-slate-400 mb-2",children:s.description}),e.jsx("div",{className:"p-2 rounded bg-slate-700/50 mb-2",children:e.jsx("p",{className:"text-xs text-amber-300 italic",children:s.example})}),e.jsx("p",{className:"text-xs text-green-400",children:s.cta})]},s.format)})})})]})]}),e.jsxs("div",{className:"space-y-4",children:[l&&j?e.jsxs(n,{className:"bg-slate-900/60 border-green-500/30 border","data-testid":"card-personal-link",children:[e.jsx(h,{className:"pb-2",children:e.jsxs(p,{className:"text-white text-sm flex items-center gap-2",children:[e.jsx(ce,{className:"w-4 h-4 text-green-400"}),"Your Personal Referral Link"]})}),e.jsxs(i,{className:"space-y-3",children:[e.jsx("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-slate-800 border border-slate-700",children:e.jsx("code",{className:"text-xs text-green-400 flex-1 break-all","data-testid":"text-referral-link",children:j})}),e.jsxs(m,{className:"w-full bg-green-500 hover:bg-green-400 text-black font-semibold",onClick:()=>A(j),"data-testid":"button-copy-personal-link",children:[F?e.jsx(I,{className:"w-3.5 h-3.5 mr-2"}):e.jsx(C,{className:"w-3.5 h-3.5 mr-2"}),F?"Copied!":"Copy Referral Link"]}),f&&e.jsxs("div",{className:"grid grid-cols-2 gap-2 pt-1",children:[e.jsxs("div",{className:"p-3 rounded-lg bg-slate-800/60 text-center","data-testid":"stat-clicks",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1 mb-1",children:[e.jsx(de,{className:"w-3 h-3 text-blue-400"}),e.jsx("span",{className:"text-xs text-slate-400",children:"Clicks"})]}),e.jsx("p",{className:"text-xl font-bold text-white",children:f.clicks})]}),e.jsxs("div",{className:"p-3 rounded-lg bg-slate-800/60 text-center","data-testid":"stat-conversions",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1 mb-1",children:[e.jsx(me,{className:"w-3 h-3 text-amber-400"}),e.jsx("span",{className:"text-xs text-slate-400",children:"Passes Claimed"})]}),e.jsx("p",{className:"text-xl font-bold text-white",children:f.conversions})]})]}),e.jsx("p",{className:"text-xs text-slate-500 text-center",children:"Stats update every 30 seconds"})]})]}):e.jsxs(n,{className:"bg-slate-900/60 border-amber-500/30 border","data-testid":"card-register",children:[e.jsx(h,{className:"pb-2",children:e.jsxs(p,{className:"text-white text-sm flex items-center gap-2",children:[e.jsx(Z,{className:"w-4 h-4 text-amber-400"}),"Get Your Personal Referral Link"]})}),e.jsxs(i,{children:[e.jsx("p",{className:"text-xs text-slate-400 mb-4",children:"Register once to get a unique link with click and conversion tracking."}),e.jsx(ee,{...c,children:e.jsxs("form",{onSubmit:c.handleSubmit(s=>b.mutate(s)),className:"space-y-3",children:[e.jsx(N,{control:c.control,name:"handle",render:({field:s})=>e.jsxs(w,{children:[e.jsx(k,{className:"text-xs text-slate-400",children:"Social Handle"}),e.jsx(v,{children:e.jsx(R,{placeholder:"@yourhandle",className:"bg-slate-800 border-slate-700 text-white text-sm h-9","data-testid":"input-handle",...s})}),e.jsx(y,{})]})}),e.jsx(N,{control:c.control,name:"platform",render:({field:s})=>e.jsxs(w,{children:[e.jsx(k,{className:"text-xs text-slate-400",children:"Primary Platform"}),e.jsxs(se,{onValueChange:s.onChange,defaultValue:s.value,children:[e.jsx(v,{children:e.jsx(te,{className:"bg-slate-800 border-slate-700 text-white text-sm h-9","data-testid":"select-platform",children:e.jsx(ae,{placeholder:"Select platform"})})}),e.jsx(re,{children:Object.entries(be).map(([a,d])=>e.jsx(le,{value:a,children:d},a))})]}),e.jsx(y,{})]})}),e.jsx(N,{control:c.control,name:"email",render:({field:s})=>e.jsxs(w,{children:[e.jsx(k,{className:"text-xs text-slate-400",children:"Email (optional — for payouts)"}),e.jsx(v,{children:e.jsx(R,{placeholder:"[email protected]",className:"bg-slate-800 border-slate-700 text-white text-sm h-9","data-testid":"input-email",...s})}),e.jsx(y,{})]})}),e.jsx(m,{type:"submit",className:"w-full bg-amber-500 hover:bg-amber-400 text-black font-semibold",disabled:b.isPending,"data-testid":"button-get-link",children:b.isPending?e.jsxs(e.Fragment,{children:[e.jsx(Q,{className:"w-3.5 h-3.5 mr-2 animate-spin"})," Generating link..."]}):"Get My Referral Link →"})]})})]})]}),e.jsx(n,{className:"bg-slate-900/60 border-slate-800",children:e.jsxs(i,{className:"pt-4 space-y-3",children:[e.jsx("h4",{className:"text-sm font-semibold text-white",children:"How it works"}),ue.map((s,a)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"w-5 h-5 rounded-full bg-purple-500/20 text-purple-400 flex items-center justify-center text-xs font-bold flex-shrink-0 mt-0.5",children:a+1}),e.jsx("p",{className:"text-xs text-slate-400",children:s})]},a))]})}),e.jsx(n,{className:"bg-slate-900/60 border-slate-800",children:e.jsxs(i,{className:"pt-4 space-y-2",children:[e.jsx("h4",{className:"text-sm font-semibold text-white mb-3",children:"Qu
1ick links to share"}),M.map(({label:s,href:a})=>{const d=l?`${window.location.origin}${a}?ref=${l}`:`${window.location.origin}${a}?ref=creator`;return e.jsxs("div",{className:"flex items-center justify-between p-2 rounded-lg bg-slate-800/40 hover:bg-slate-800 transition-colors group",children:[e.jsx("span",{className:"text-xs text-slate-300",children:s}),e.jsx(m,{variant:"ghost",size:"sm",className:"h-6 px-2 text-slate-500 hover:text-white",onClick:()=>{navigator.clipboard.writeText(d),o({title:"Copied!"})},"data-testid":`button-copy-link-${a.replace(/\//g,"-")}`,children:e.jsx(C,{className:"w-3 h-3"})})]},a)})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-xs text-slate-500 uppercase tracking-wider",children:"Other cities"}),["london","berlin","madrid","dublin"].filter(s=>s!==r).map(s=>{const a=O(s);return e.jsx(E,{href:`/fan-travel/${s}/creator-brief`,"data-testid":`link-creator-brief-${s}`,children:e.jsxs("div",{className:"flex items-center gap-2 p-2 rounded-lg bg-slate-800/40 hover:bg-slate-800 transition-colors cursor-pointer",children:[e.jsx("span",{className:"text-base",children:a==null?void 0:a.flag}),e.jsxs("span",{className:"text-xs text-slate-300",children:[a==null?void 0:a.name," Creator Brief"]}),e.jsx(J,{className:"w-3 h-3 text-slate-500 ml-auto"})]})},s)})]})]})]})})]})}export{Ge 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.