diff --git a/components/ServiceSectionS2/ServiceSectionS2.js b/components/ServiceSectionS2/ServiceSectionS2.js index 946fc73..15279cb 100644 --- a/components/ServiceSectionS2/ServiceSectionS2.js +++ b/components/ServiceSectionS2/ServiceSectionS2.js @@ -1,21 +1,38 @@ -import React, { useState } from "react"; +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 { TabServices } from "../../utils/constant.utils"; // JSON array -import Campaign from "../../api/campaign"; +import { useTranslation } from "next-i18next"; const ClickHandler = () => { - window.scrollTo(10, 0); + window.scrollTo(0, 0); }; -// Extract unique categories from the JSON dynamically -const categories = [...new Set(Campaign.map((service) => service.category))]; - 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); }; @@ -26,7 +43,7 @@ const ServiceSectionS2 = () => {