PageSourceSearch

https://fixatrip-pr.vercel.app/assets/AdminWelcome-CRlv_x_-.js

js fixatrip-pr.vercel.app collected 2026-10-03 06:57:13 UTC 7,008 bytes, 25 lines download raw bytes

1import{r as n,j as e}from"./index-9RYYQKcH.js";const h="https://fixatrippuertorico.com",P="https://crm-ia-production-c247.up.railway.app/api",T=()=>typeof window<"u"&&localStorage.getItem("chef_pass")||"",I=[{label:"Botes privados",path:"/fix-a-boat"},{label:"Chef privado",path:"/fix-a-chef"},{label:"Tours & Experiencias",path:"/tours"},{label:"Transporte",path:"/fix-a-transport"},{label:"Wellness",path:"/fix-a-wellness"}],y=s=>(s||"").replace(/^Fix a \w+(\s*\(web\))?\s*[—-]\s*/i,"").trim();function b({value:s,small:c}){const[t,l]=n.useState(!1);return e.jsx("button",{onClick:()=>{var d;(d=navigator.clipboard)==null||d.writeText(s),l(!0),setTimeout(()=>l(!1),1400)},className:`shrink-0 rounded-lg font-semibold text-white transition-colors ${t?"bg-emerald-600":"bg-neutral-900 hover:bg-neutral-700"} ${c?"px-3 py-1.5 text-xs":"px-4 py-2 text-sm"}`,children:t?"¡Copiado!":"Copiar"})}function z(){const[s,c]=n.useState(""),[t,l]=n.useState(""),[d,f]=n.useState(""),[g,m]=n.useState([]),[w,v]=n.useState(!1),S=async a=>{if(f(a),a.trim().length<2){m([]);return}v(!0);try{const r=await fetch(`${P}/chef-requests/kommo-leads?q=${encodeURIComponent(a)}`,{headers:{"x-chef-pass":T()}});m(r.ok?await r.json():[])}catch{m([])}v(!1)},$=a=>{c(y(a.name)),a.host&&l(a.host),m([]),f("")},x=new URLSearchParams;s.trim()&&x.set("name",s.trim()),t.trim()&&x.set("host",t.trim());const j=x.toString(),o=`${h}/welcome${j?`?${j}`:""}`,N=s.trim()||"[nombre]",p=t.trim(),k=p?` during your stay at ${p}'s property`:" during your stay in Puerto Rico",E=p?` durante su estadía en la propiedad de ${p}`:" durante su estadía en Puerto Rico",C=`Dear ${N},
2
3Welcome to Puerto Rico. My name is Sergio, and I am your Guest Experience contact at Fix a Trip${k}.
4
5Our local team specializes in creating seamless, memorable trips — private boat charters, in-villa private chefs, curated tours and island transportation — all arranged for you at the best available rates and at no additional service cost.
6
7I have prepared a personalized page with our recommendations and rates for your trip:
8${o}
9
10It would be my pleasure to help you plan the perfect stay. Please let me know if there is anything you would like to arrange.
11
12Warm regards,
13Sergio — Fix a Trip Puerto Rico`,R=`Estimado/a ${N}:
14
15Bienvenido a Puerto Rico. Mi nombre es Sergio y soy su contacto de Experiencia del Huésped en Fix a Trip${E}.
16
17Nuestro equipo local se especializa en crear viajes memorables y sin complicaciones — botes privados, chef privado en su villa, tours seleccionados y transporte en la isla — todo coordinado para usted a las mejores tarifas disponibles y sin ningún costo de servicio adicional.
18
19He preparado una página personalizada con nuestras recomendaciones y tarifas para su viaje:
20${o}
21
22Será un placer ayudarle a planificar la estadía perfecta. Quedo atento a cualquier cosa que desee coordinar.
23
24Un cordial saludo,
25Sergio — Fix a Trip Puerto Rico`,i="w-full rounded-lg border border-neutral-300 px-3 py-2.5 text-sm outline-none focus:border-neutral-900",u="text-xs font-semibold text-neutral-500 mb-1 block";return e.jsx("div",{className:"min-h-screen bg-neutral-50 text-neutral-900",children:e.jsxs("div",{className:"mx-auto max-w-2xl px-4 py-8",children:[e.jsx("a",{href:"/admin",className:"inline-flex items-center gap-1.5 rounded-lg border border-neutral-300 bg-white px-3.5 py-2 text-sm font-semibold text-neutral-700 hover:bg-neutral-100",children:"← Menú admin"}),e.jsx("h1",{className:"mt-4 text-2xl font-bold",children:"Links de bienvenida"}),e.jsx("p",{className:"mt-1 text-sm text-neutral-500",children:"Genera el link de bienvenida personalizado para mandar al huésped en el welcome mail o por SMS."}),e.jsxs("div",{className:"mt-6 rounded-2xl bg-white p-5 shadow-sm sm:p-6",children:[e.jsx("label",{className:u,children:"Buscar el lead en Kommo (jala nombre y host)"}),e.jsx("input",{value:d,onChange:a=>S(a.target.value),placeholder:"Nombre, teléfono o email del huésped…",className:i}),w&&e.jsx("p",{className:"mt-2 text-xs text-neutral-400",children:"Buscando…"}),g.length>0&&e.jsx("div",{className:"mt-2 overflow-hidden rounded-lg border border-neutral-200",children:g.map(a=>e.jsxs("button",{onClick:()=>$(a),className:"flex w-full items-center justify-between gap-3 border-b border-neutral-100 px-3 py-2.5 text-left text-sm last:border-0 hover:bg-neutral-50",children:[e.jsx("span",{className:"font-medium",children:y(a.name)||a.name}),a.host?e.jsxs("span",{className:"text-xs text-neutral-500",children:["host: ",a.host]}):null]},a.id))}),e.jsxs("div",{className:"mt-5 grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("label",{className:u,children:"Nombre del huésped"}),e.jsx("input",{value:s,onChange:a=>c(a.target.value),placeholder:"Celine",className:i})]}),e.jsxs("div",{children:[e.jsx("label",{className:u,children:"Nombre del anfitrión (host)"}),e.jsx("input",{value:t,onChange:a=>l(a.target.value),placeholder:"Jeff",className:i})]})]}),e.jsxs("div",{className:"mt-5",children:[e.jsx("label",{className:u,children:"Link de bienvenida"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{readOnly:!0,value:o,className:`${i} bg-neutral-50 font-mono text-xs`,onFocus:a=>a.target.select()}),e.jsx(b,{value:o}),e.jsx("a",{href:o,target:"_blank",rel:"noreferrer",className:"shrink-0 rounded-lg border border-neutral-300 bg-white px-4 py-2 text-sm font-semibold text-neutral-700 hover:bg-neutral-100",children:"Ver"})]})]})]}),e.jsxs("div",{className:"mt-6 rounded-2xl bg-white p-5 shadow-sm sm:p-6",children:[e.jsx("div",{className:"text-sm font-bold",children:"Mensaje de bienvenida (correo / SMS)"}),e.jsx("p",{className:"text-xs text-neutral-500",children:"Copia y pega. Ya trae el link, el nombre y el host."}),e.jsx("div",{className:"mt-4 grid gap-4 sm:grid-cols-2",children:[{t:"English",m:C},{t:"Español",m:R}].map(({t:a,m:r})=>e.jsxs("div",{className:"rounded-xl border border-neutral-200 p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-semibold text-neutral-600",children:a}),e.jsx(b,{value:r,small:!0})]}),e.jsx("pre",{className:"whitespace-pre-wrap font-sans text-xs leading-relaxed text-neutral-700",children:r})]},a))})]}),e.jsxs("div",{className:"mt-6 rounded-2xl bg-white p-5 shadow-sm sm:p-6",children:[e.jsx("div",{className:"text-sm font-bold",children:"Links directos"}),e.jsx("p",{className:"text-xs text-neutral-500",children:"Si prefieres mandar a un servicio específico (ej. botes privados) en vez de la página completa."}),e.jsx("div",{className:"mt-3 space-y-2",children:I.map(a=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"w-40 shrink-0 text-sm font-medium",children:a.label}),e.jsx("input",{readOnly:!0,value:`${h}${a.path}`,className:`${i} bg-neutral-50 font-mono text-xs`,onFocus:r=>r.target.select()}),e.jsx(b,{value:`${h}${a.path}`,small:!0})]},a.path))})]})]})})}export{z 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.