diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index d4836a1..4dd4ee3 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -1,6 +1,6 @@ import logo from "@/assets/logo.webp"; import { motion } from "framer-motion"; -import { Github, Instagram, Linkedin, Mail, Twitter } from "lucide-react"; +import { Facebook, Github, Gitlab, Instagram, Linkedin, Mail, Twitter } from "lucide-react"; const quickLinks = [ { name: "Home", href: "#home" }, @@ -23,8 +23,8 @@ const socials = [ href: "https://www.linkedin.com/company/techzaa", label: "LinkedIn", }, - { icon: Twitter, href: "#", label: "Twitter" }, - { icon: Github, href: "#", label: "GitHub" }, + { icon: Facebook, href: "https://www.facebook.com/techzaaalpha", label: "Facebook" }, + { icon: Gitlab, href: "https://gitlab.techzaa.tech", label: "Gitlab" }, { icon: Instagram, href: "#", label: "Instagram" }, ]; diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index 74de92b..2237c7a 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -150,7 +150,7 @@ export default function Navbar() { onClick={() => setIsModalOpen(true)} className="bg-primary text-primary-foreground font-semibold px-6 py-2 rounded-full animate-pulse-glow hover:scale-105 transition-transform" > - Let Me Talk + Talk with Us diff --git a/src/components/TestimonialsSection.tsx b/src/components/TestimonialsSection.tsx index c8e62a0..247c8a5 100644 --- a/src/components/TestimonialsSection.tsx +++ b/src/components/TestimonialsSection.tsx @@ -1,20 +1,24 @@ -import { useState, useEffect, useCallback } from 'react'; -import { motion, AnimatePresence } from 'framer-motion'; -import { Star, ChevronLeft, ChevronRight, Quote } from 'lucide-react'; -import { Button } from '@/components/ui/button'; -import useEmblaCarousel from 'embla-carousel-react'; -import Autoplay from 'embla-carousel-autoplay'; -import { useReviews } from '@/hooks/queires/useReviews'; +import { Button } from "@/components/ui/button"; +import { useReviews } from "@/hooks/queires/useReviews"; +import Autoplay from "embla-carousel-autoplay"; +import useEmblaCarousel from "embla-carousel-react"; +import { motion } from "framer-motion"; +import { ChevronLeft, ChevronRight, Quote, Star } from "lucide-react"; +import { useCallback, useEffect, useState } from "react"; export default function TestimonialsSection() { - - const {data: reveiwsData} = useReviews(); + const { data: reveiwsData } = useReviews(); const testimonials = reveiwsData?.data.data; + const getStars = (rating: unknown) => { + const n = Number(rating); + if (!Number.isFinite(n) || n <= 0) return 0; + return Math.floor(n); + }; const [emblaRef, emblaApi] = useEmblaCarousel( - { loop: true, align: 'center' }, - [Autoplay({ delay: 5000, stopOnInteraction: false })] + { loop: true, align: "center" }, + [Autoplay({ delay: 5000, stopOnInteraction: false })], ); const [selectedIndex, setSelectedIndex] = useState(0); @@ -29,9 +33,9 @@ export default function TestimonialsSection() { useEffect(() => { if (!emblaApi) return; onSelect(); - emblaApi.on('select', onSelect); + emblaApi.on("select", onSelect); return () => { - emblaApi.off('select', onSelect); + emblaApi.off("select", onSelect); }; }, [emblaApi, onSelect]); @@ -56,10 +60,12 @@ export default function TestimonialsSection() { Client Stories

- What Our Clients Say + What Our{" "} + Clients Say

- Don't just take our word for it - hear from the amazing companies we've had the pleasure of working with. + Don't just take our word for it - hear from the amazing companies + we've had the pleasure of working with.

@@ -107,7 +113,7 @@ export default function TestimonialsSection() { {/* Stars */}
- {[...Array(testimonial.rating)]?.map((_, i) => ( + {[...Array(getStars(testimonial.rating))]?.map((_, i) => ( emblaApi?.scrollTo(index)} className={`w-2 h-2 rounded-full transition-all duration-300 ${ selectedIndex === index - ? 'w-8 bg-primary neon-glow' - : 'bg-muted-foreground/30 hover:bg-muted-foreground/50' + ? "w-8 bg-primary neon-glow" + : "bg-muted-foreground/30 hover:bg-muted-foreground/50" }`} aria-label={`Go to slide ${index + 1}`} />