"use client" import { cn } from "@/lib/utils" import { useLocale, useTranslations } from "next-intl" import { useEffect, useRef, useState } from "react" export default function TabSwitch({ tabs, currentTab, setCurrentTab, }: { tabs: string[] currentTab: string setCurrentTab: (tab: string) => void }) { const t = useTranslations("TabSwitch") const [indicator, setIndicator] = useState<{ x: number; w: number }>({ x: 0, w: 0, }) const tabRefs = useRef<(HTMLDivElement | null)[]>([]) const locale = useLocale() useEffect(() => { const currentTabElement = tabRefs.current[tabs.indexOf(currentTab)] if (currentTabElement) { const parentPadding = 1 setIndicator({ x: tabs.indexOf(currentTab) !== 0 ? currentTabElement.offsetLeft - parentPadding : currentTabElement.offsetLeft, w: currentTabElement.offsetWidth, }) } }, [currentTab, tabs, locale]) return (
{t(tab)}