import React, { useState, useEffect } from "react"; import { TabContent, TabPane, Nav, NavItem, NavLink, Row } from "reactstrap"; import classnames from "classnames"; import Link from "next/link"; import Image from "next/image"; import { useTranslation } from "next-i18next"; const ClickHandler = () => { window.scrollTo(0, 0); }; const ServiceSectionS2 = () => { const { t, i18n } = useTranslation("services"); // Get campaigns array from the translation JSON const campaigns = t("campaigns", { returnObjects: true }); // Extract unique categories from the campaigns dynamically const categories = [...new Set(campaigns.map((service) => service.category))]; // Default active tab is the first category, but we will set it dynamically based on the language const [activeTab, setActiveTab] = useState(categories[0]); // Function to change the active tab based on the selected language const changeActiveTabOnLanguageChange = () => { // Set the active tab to the first category whenever the language changes setActiveTab(categories[0]); }; // Track language changes using the `useEffect` hook useEffect(() => { // Whenever the language changes, reset the active tab changeActiveTabOnLanguageChange(); }, [i18n.language]); // `i18n.language` triggers the effect when the language changes const toggle = (tab) => { if (activeTab !== tab) setActiveTab(tab); }; return (
{/* Tab Navigation */} {/* Tab Content */} {categories.map((cat, idx) => ( {/* Filter campaigns based on category */} {campaigns .filter((srv) => srv.category === cat) .slice(0, 3) // Limit to 3 services per category .map((service, srvIdx) => (
{service.sTitle}

{service.sTitle} {/* Service Title */}

100 ? service.description.substring(0, 100) + "..." : service.description, }} >

))}
))}
); }; export default ServiceSectionS2;