From b07c5ea47a9021d49f0437a5a9346f3f7c0ddab5 Mon Sep 17 00:00:00 2001 From: priyanshuvish Date: Tue, 14 Oct 2025 19:40:07 +0530 Subject: [PATCH] google review added --- components/CarouselTestimonials.tsx | 83 ++++++++++++++++++++-------- src/images/google-logo.jpg | Bin 0 -> 5657 bytes 2 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 src/images/google-logo.jpg diff --git a/components/CarouselTestimonials.tsx b/components/CarouselTestimonials.tsx index 67b2338..65c9c49 100644 --- a/components/CarouselTestimonials.tsx +++ b/components/CarouselTestimonials.tsx @@ -4,6 +4,7 @@ import { ImageWithFallback } from "./figma/ImageWithFallback"; import clutchLogo from '../src/images/clutch-logo.png'; import { useState, useEffect, useRef } from "react"; import React from "react"; +import googleLogo from '../src/images/google-logo.jpg'; const testimonials = [ { @@ -199,11 +200,10 @@ const StarRating = ({ rating }: { rating: number }) => { {Array.from({ length: 5 }).map((_, i) => ( ))} @@ -211,17 +211,17 @@ const StarRating = ({ rating }: { rating: number }) => { }; // Individual testimonial card -const TestimonialCard = ({ - testimonial, - onHover, - onLeave -}: { +const TestimonialCard = ({ + testimonial, + onHover, + onLeave +}: { testimonial: typeof testimonials[0]; onHover?: () => void; onLeave?: () => void; }) => { return ( -
- + {/* Quote */}

"{testimonial.quote}"

- + {/* Author Info - Without Avatar */}
@@ -272,9 +272,9 @@ const MarqueeRow = ({ testimonials: rowTestimonials }: { testimonials: typeof te const startAnimation = async (fromPosition: number = 0) => { const remainingDistance = TOTAL_DISTANCE - fromPosition; const remainingDuration = (Math.abs(remainingDistance) / Math.abs(TOTAL_DISTANCE)) * ANIMATION_DURATION; - + startTimeRef.current = Date.now(); - + try { await controls.start({ x: [fromPosition, TOTAL_DISTANCE], @@ -294,7 +294,7 @@ const MarqueeRow = ({ testimonials: rowTestimonials }: { testimonials: typeof te const pauseAnimation = () => { controls.stop(); pauseTimeRef.current = Date.now(); - + // Calculate current position based on elapsed time const elapsedTime = (pauseTimeRef.current - startTimeRef.current) / 1000; const progress = (elapsedTime % ANIMATION_DURATION) / ANIMATION_DURATION; @@ -331,7 +331,7 @@ const MarqueeRow = ({ testimonials: rowTestimonials }: { testimonials: typeof te }; return ( -
{/* First set */} {rowTestimonials.map((testimonial, index) => ( - ( - { className="w-16 h-16 object-contain rounded-lg" />
- + {/* Rating Info */}
@@ -427,7 +427,7 @@ export const CarouselTestimonials = () => { Don't just take our word for it. Here's what founders and product leaders say about working with us.
- + {/* Single Row Marquee Testimonials */}
{
- - {/* Centered Clutch Rating */} -
+ +
+ + {/* Google Reviews Rating */} + + {/* Google Logo */} +
+ +
+ + {/* Rating Info */} +
+
+ 4.8 +
+ {[...Array(5)].map((_, i) => ( + + ))} +
+
+
+ (38 reviews) +
+
+ Highly Rated on Google Reviews +
+
+
diff --git a/src/images/google-logo.jpg b/src/images/google-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d63d1443e8aeff06fe3c660a586445913b1861d GIT binary patch literal 5657 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 J|Fd^Q{vX-$cAEeI literal 0 HcmV?d00001