"use client" import Image from "next/image" import { Button } from "@/components/ui/button" import { useLanguage } from "@/lib/language-context" import { useEffect, useState } from "react" export default function Footer() { const { t, language } = useLanguage() const year = new Date().getFullYear().toString() const [ratingsData, setRatingsData] = useState(null) const [featuredReviews, setFeaturedReviews] = useState([]) useEffect(() => { const fetchRatings = async () => { try { const response = await fetch(`/ratings_${language}.json`) const data = await response.json() setRatingsData(data) const reviews = data?.data?.[0]?.reviews ?? [] if (reviews.length === 0) { setFeaturedReviews([]) return } if (reviews.length <= 2) { setFeaturedReviews(reviews) return } const first = Math.floor(Math.random() * reviews.length) let second = Math.floor(Math.random() * (reviews.length - 1)) if (second >= first) second += 1 setFeaturedReviews([reviews[first], reviews[second]]) } catch (error) { console.error("Error fetching ratings:", error) } } fetchRatings() }, [language]) const ratingValue = ratingsData?.data?.[0]?.rating ?? 5.0 const ratingCount = ratingsData?.data?.[0]?.userRatingCount ?? 0 const ratingPercent = Math.max(0, Math.min(100, (ratingValue / 5) * 100)) const reviewUrl = "https://g.page/r/CRltVP4lAy7lEBM/review" const reviewPreviewText = (text: string) => (text.length > 160 ? `${text.slice(0, 160).trimEnd()}...` : text) const reviewStars = (value: number) => { const safe = Math.max(0, Math.min(5, Math.round(value))) return "★".repeat(safe) + "☆".repeat(5 - safe) } return (

{t.footer.ready}

{t.footer.description}

{t.footer.reviewsTitle}
Google
{ratingValue.toFixed(1)}
({ratingCount})
{featuredReviews.map((review, idx) => (
{reviewStars(review.rating ?? 5)}
{review.author ?? "Customer"}

{reviewPreviewText(review.text ?? "")}

))}
{t.footer.reviewsCta}
{t.footer.copyright.replace("{year}", year)} {t.footer.rights}
{t.footer.seoLine}
) }