"use client"; import { useState, ReactNode, useEffect } from "react"; import { Box, Tabs, Tab } from "@mui/material"; import { useTranslation } from "react-i18next"; import { useSearchParams, useRouter } from "next/navigation"; interface TabPanelProps { children?: ReactNode; index: number; value: number; } function TabPanel(props: TabPanelProps) { const { children, value, index, ...other } = props; return ( ); } interface QrCodeHandleTabsProps { userTabContent: ReactNode; equipmentTabContent: ReactNode; warehouseTabContent: ReactNode; } const QrCodeHandleTabs: React.FC = ({ userTabContent, equipmentTabContent, warehouseTabContent, }) => { const { t: tQrCodeHandle } = useTranslation("qrCodeHandle"); const { t: tUser } = useTranslation("user"); const { t: tWarehouse } = useTranslation("warehouse"); const searchParams = useSearchParams(); const router = useRouter(); const getInitialTab = () => { const tab = searchParams.get("tab"); if (tab === "equipment") return 1; if (tab === "warehouse") return 2; if (tab === "user") return 0; return 0; }; const [currentTab, setCurrentTab] = useState(getInitialTab); useEffect(() => { const tab = searchParams.get("tab"); if (tab === "equipment") { setCurrentTab(1); } else if (tab === "warehouse") { setCurrentTab(2); } else if (tab === "user") { setCurrentTab(0); } }, [searchParams]); const handleTabChange = (event: React.SyntheticEvent, newValue: number) => { setCurrentTab(newValue); let tabName = "user"; if (newValue === 1) tabName = "equipment"; else if (newValue === 2) tabName = "warehouse"; const params = new URLSearchParams(searchParams.toString()); params.set("tab", tabName); router.push(`?${params.toString()}`, { scroll: false }); }; return ( {userTabContent} {equipmentTabContent} {warehouseTabContent} ); }; export default QrCodeHandleTabs;