PageSourceSearch

https://www.remindlo.co.uk/assets/Referral-BoLxF9R_.js

js remindlo.co.uk collected 2026-09-24 13:44:39 UTC 6,335 bytes, 9 lines download raw bytes

1import{r as i,j as e}from"./vendor-react-BBwceI2v.js";import{cQ as S,G as R,a0 as t,aF as n,aD as o,aE as c,ea as E,i as p,aq as g,b9 as j,M as I,a7 as T,b4 as _,aH as l,V as y,d5 as d,eh as M}from"./app-shared-B64G9TYe.js";import"./vendor-supabase-DeqxZOC3.js";const L="https://www.remindlo.co.uk/register?utm_source=referral&utm_medium=friend&utm_campaign=referral_program&utm_content=";function A(){const[m,N]=i.useState(null),[b,w]=i.useState(!0),[h,u]=i.useState(null);i.useEffect(()=>{(async()=>{try{const{data:r,error:v}=await y.rpc("get_user_tenant_id");if(v||!r)throw new Error("Could not load tenant");const{data:C,error:f}=await y.from("tenants").select("slug").eq("id",r).single();if(f)throw f;N(C.slug)}catch(r){d.error("Error loading referral link: "+r.message)}finally{w(!1)}})()},[]);const a=m?`${L}${m}`:"",x=async(s,r)=>{try{await navigator.clipboard.writeText(s),u(r),d.success("Copied to clipboard!"),M(r),setTimeout(()=>u(null),2e3)}catch{d.error("Failed to copy. Please select and copy manually.")}},k=[{id:"whatsapp",label:"WhatsApp / Text Message",icon:I,text:`Hey! I've been using Remindlo to send automatic SMS reminders to my clients – it's brilliant for reducing no-shows. If you sign up through my link, we both get a free month. Have a look: ${a}`},{id:"email",label:"Email",icon:T,text:`Hi,
2
3I wanted to share something that's made a real difference to my business. I've been using Remindlo – it sends automatic SMS reminders to clients when their next appointment or service is due.
4
5Since I started using it, I've seen fewer no-shows and more repeat bookings. It takes about 2 minutes to set up and there's a free plan to start with.
6
7If you sign up through this link, we both get a free month: ${a}
8
9Worth a look if you're running a service business!`},{id:"social",label:"Social Media Post",icon:_,text:`Running a service business? I use @Remindlo to send automatic SMS reminders to my clients – fewer no-shows, more repeat bookings. They have a referral deal on: sign up through my link and we both get a free month. ${a} #SmallBusiness #UK`}];return b?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(S,{className:"w-6 h-6 animate-spin text-muted-foreground"})}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(R,{className:"w-8 h-8 text-primary"}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Refer & Earn"}),e.jsx("p",{className:"text-muted-foreground",children:"Get Remindlo for free — refer business owners you know"})]})]}),e.jsx(t,{className:"bg-primary/5 border-primary/20",children:e.jsx(n,{className:"pt-6",children:e.jsxs("p",{className:"text-lg text-foreground",children:["For every business owner you refer who signs up and makes their first payment,"," ",e.jsx("strong",{children:"you both get an extra free month"})," on your current plan. There's no limit — refer enough friends and use Remindlo for free, indefinitely."]})})}),e.jsxs(t,{children:[e.jsx(o,{children:e.jsxs(c,{className:"flex items-center gap-2",children:[e.jsx(E,{className:"w-5 h-5"}),"Your Referral Link"]})}),e.jsxs(n,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("code",{className:"flex-1 bg-muted px-4 py-3 rounded-md text-sm break-all",children:a}),e.jsx(p,{variant:"outline",size:"icon",onClick:()=>x(a,"link"),className:"shrink-0",children:h==="link"?e.jsx(g,{className:"w-4 h-4 text-white"}):e.jsx(j,{className:"w-4 h-4"})})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"Share this link directly or use one of the ready-made templates below."})]})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-foreground mb-4",children:"Ready-Made Templates"}),e.jsx("div",{className:"space-y-4",children:k.map(s=>e.jsxs(t,{children:[e.jsx(o,{className:"pb-3",children:e.jsxs(c,{className:"flex items-center gap-2 text-base",children:[e.jsx(s.icon,{className:"w-5 h-5 text-primary"}),s.label]})}),e.jsxs(n,{children:[e.jsx("div",{className:"bg-muted rounded-md p-4 mb-3",children:e.jsx("p",{className:"text-sm text-foreground whitespace-pre-line break-words",children:s.text})}),e.jsx(p,{variant:"outline",size:"sm",onClick:()=>x(s.text,s.id),className:"gap-2",children:h===s.id?e.jsxs(e.Fragment,{children:[e.jsx(g,{className:"w-4 h-4 text-white"}),"Copied!"]}):e.jsxs(e.Fragment,{children:[e.jsx(j,{className:"w-4 h-4"}),"Copy message"]})})]})]},s.id))})]}),e.jsxs(t,{children:[e.jsx(o,{children:e.jsx(c,{children:"Programme Terms"})}),e.jsx(n,{children:e.jsxs("ul",{className:"space-y-3",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(l,{className:"w-5 h-5 text-primary mt-0.5 shrink-0"}),e.jsxs("span",{className:"text-muted-foreground",children:[e.jsx("strong",{className:"text-foreground",children:"You get 1 free month"})," added to your current plan for every successful referral"]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(l,{className:"w-5 h-5 text-primary mt-0.5 shrink-0"}),e.jsxs("span",{className:"text-muted-foreground",children:[e.jsx("strong",{className:"text-foreground",children:"Your friend gets 1 free month"})," on top of their chosen plan"]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(l,{className:"w-5 h-5 text-primary mt-0.5 shrink-0"}),e.jsxs("span",{className:"text-muted-foreground",children:["The bonus activates after their ",e.jsx("strong",{className:"text-foreground",children:"first successful payment"})]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(l,{className:"w-5 h-5 text-primary mt-0.5 shrink-0"}),e.jsx("span",{className:"text-muted-foreground",children:"No limit on referrals — refer enough friends and use Remindlo for free"})]})]})})]}),e.jsx(t,{className:"bg-muted/50",children:e.jsx(n,{className:"pt-6",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["After your referral signs up and makes their first payment, email"," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary underline font-medium",children:"[email protected]"})," ","with the referred business name to claim your free month. We'll verify the referral and add the bonus to both accounts."]})})})]})}export{A 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.