PageSourceSearch

https://zymo.app/assets/TestimonialsCarousel-Puo2HIv7.js

js zymo.app collected 2026-09-24 12:54:10 UTC 6,317 bytes, 1 lines download raw bytes

1import{r as l,j as e}from"./vendor-react-Dxo5VVMX.js";import{q as j,c as N,w as k,o as x,l as C,b as S}from"./vendor-firebase-firestore-BI8UjDC3.js";import{c as T}from"./firebase-BVnSfmn9.js";import{C as I}from"./chevron-left-Dgq7kjdy.js";import{C as D}from"./chevron-right-DBK-jyoL.js";import{c as R}from"./index-6F7UmCCt.js";import{S as u}from"./star-CALyqH9L.js";import"./vendor-analytics-BolNmaul.js";import"./vendor-firebase-core-Bea8MryS.js";import"./vendor-firebase-extras-Butzwarm.js";import"./firebaseCore-DdWO-lul.js";import"./vendor-query-BGDNI3Fe.js";const E=[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]],M=R("Quote",E),A=[{name:"Rahul Sharma",city:"Bangalore",rating:5,text:"Amazing service! Booked a Creta for a weekend trip to Coorg. The car was clean, well-maintained, and the pickup was super smooth. Will definitely use Zymo again!",date:"Nov 2024"},{name:"Priya Menon",city:"Mumbai",rating:5,text:"Best self-drive platform in India. I compared prices across multiple apps and Zymo consistently had the lowest rates. The app is also very user-friendly.",date:"Oct 2024"},{name:"Amit Patel",city:"Ahmedabad",rating:5,text:"Used Zymo for my first self-drive experience. The customer support was excellent and helped me through the entire process. Highly recommended!",date:"Nov 2024"},{name:"Sneha Reddy",city:"Hyderabad",rating:5,text:"Love how easy it is to compare prices from different vendors. Saved almost ₹2000 on my last booking. The doorstep delivery feature is a game-changer!",date:"Dec 2024"},{name:"Vikram Singh",city:"Delhi",rating:5,text:"Rented a Thar for a Rajasthan road trip. The car was in excellent condition and the entire experience was hassle-free. Zymo has earned a loyal customer!",date:"Oct 2024"}];function f(n){return n.toLocaleDateString("en-IN",{month:"short",year:"numeric"})}const W=()=>{const[n,o]=l.useState(0),[r,g]=l.useState(A);l.useEffect(()=>{(async()=>{try{const t=j(N(T,"User Ratings"),k("rating",">=",4),x("rating"),x("timestamp","desc"),C(10)),w=await S(t),m=[];w.forEach(v=>{var p;const a=v.data(),c=a.review||a.comment||"",h=a.userName||a.name||"";if(!c||c.length<20||!h)return;let d="";(p=a.timestamp)!=null&&p.toDate?d=f(a.timestamp.toDate()):a.timestamp&&(d=f(new Date(a.timestamp))),m.push({name:h.split(" ").slice(0,2).join(" "),city:a.city||"",rating:Math.round(a.rating)||5,text:c,date:d})}),m.length>=3&&g(m)}catch(t){console.warn("[silent-catch TestimonialsCarousel.tsx:96]:",t&&t.message)}})()},[]),l.useEffect(()=>{const s=setInterval(()=>{o(t=>(t+1)%r.length)},5e3);return()=>clearInterval(s)},[r.length]);const b=()=>{o(s=>(s-1+r.length)%r.length)},y=()=>{o(s=>(s+1)%r.length)},i=r[n];return e.jsxs("section",{className:"relative py-16 md:py-20 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-gray-900 via-gray-800 to-gray-900"}),e.jsx("div",{className:"absolute top-20 right-20 w-72 h-72 bg-pink-500/10 rounded-full blur-[100px]"}),e.jsx("div",{className:"absolute bottom-20 left-20 w-64 h-64 bg-purple-500/10 rounded-full blur-[100px]"}),e.jsxs("div",{className:"relative max-w-4xl mx-auto px-4 md:px-6",children:[e.jsxs("div",{className:"text-center mb-10 md:mb-12",children:[e.jsx("span",{className:"inline-block px-4 py-1.5 mb-4 text-sm font-semibold tracking-wider text-pink-400 bg-pink-400/10 rounded-full border border-pink-400/20",children:"TESTIMONIALS"}),e.jsxs("h2",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white mb-4",children:["What Our"," ",e.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-blue-400 to-purple-500",children:"Customers Say"})]}),e.jsx("p",{className:"text-gray-400 text-lg",children:"Join thousands of happy drivers"})]}),e.jsxs("div",{className:"relative",children:[e.jsx("button",{onClick:b,"aria-label":"Previous testimonial",className:"absolute left-0 top-1/2 -translate-y-1/2 -translate-x-2 md:-translate-x-14 z-10 w-10 h-10 md:w-12 md:h-12 bg-white/10 backdrop-blur-sm rounded-full flex items-center justify-center hover:bg-white/20 transition-colors border border-white/10",children:e.jsx(I,{className:"w-4 h-4 text-white"})}),e.jsx("button",{onClick:y,"aria-label":"Next testimonial",className:"absolute right-0 top-1/2 -translate-y-1/2 translate-x-2 md:translate-x-14 z-10 w-10 h-10 md:w-12 md:h-12 bg-white/10 backdrop-blur-sm rounded-full flex items-center justify-center hover:bg-white/20 transition-colors border border-white/10",children:e.jsx(D,{className:"w-4 h-4 text-white"})}),e.jsx("div",{className:"bg-white/5 backdrop-blur-sm rounded-2xl p-6 md:p-10 border border-white/10 mx-6 md:mx-0",children:e.jsxs("div",{className:"flex items-start gap-4 md:gap-6",children:[e.jsx(M,{className:"w-8 h-8 md:w-10 md:h-10 text-purple-400 flex-shrink-0 opacity-50"}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("p",{className:"text-gray-300 text-lg md:text-xl leading-relaxed mb-6",children:['"',i.text,'"']}),e.jsxs("div",{className:"flex items-center justify-between flex-wrap gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-white text-lg",children:i.name}),e.jsxs("p",{className:"text-sm text-gray-500",children:[i.city,i.city&&i.date?" • ":"",i.date]})]}),e.jsx("div",{className:"flex items-center gap-1",children:Array.from({length:5}).map((s,t)=>t<i.rating?e.jsx(u,{className:"w-5 h-5 text-yellow-400",fill:"currentColor"},t):e.jsx(u,{className:"w-5 h-5 text-yellow-400/40",fill:"none"},t))})]})]})]})})]}),e.jsx("div",{className:"flex items-center justify-center gap-0 mt-8",children:r.map((s,t)=>e.jsx("button",{onClick:()=>o(t),"aria-label":`Go to testimonial ${t+1}`,"aria-current":t===n?"true":void 0,className:"flex items-center justify-center min-w-[24px] min-h-[24px] p-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-purple-400 rounded",children:e.jsx("span",{"aria-hidden":"true",className:`block h-2 rounded-full transition-all duration-300 ${t===n?"bg-gradient-to-r from-blue-400 to-purple-500 w-8":"bg-white/20 w-2 hover:bg-white/40"}`})},t))})]})]})};export{W 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.