import React, { useEffect, useState } from 'react' import Button from '../../../Button/Button' import Icon from '../../../Icons/Icon' import { SideDrawer } from '../../../SideDrawer/SideDrawer' import { type RouteConfig } from '../RouterTabs' import MobileTabsOptions, { type MobileTabsOptionsProps, } from '../../MobileTabs/MobileTabsOptions' import styles from '../../MobileTabs/_mobile-tabs.module.scss' import { c } from '../../../../translations/LibraryTranslationService' type MobileRouterTabsProps = { /** Array of the RouteConfig object. Needed to render the tab options for mobile. */ mobileConfig: RouteConfig[] navigate: MobileTabsOptionsProps['navigate'] /** Current path from the router */ currentPath: string /** Optional prop to add a test id to the MobileRouterTabs for QA testing */ qaTestId?: string } const MobileRouterTabs = ({ mobileConfig, navigate, currentPath, qaTestId, }: MobileRouterTabsProps): React.JSX.Element => { const [active, setActive] = useState(mobileConfig[0].label) const [display, setDisplay] = useState(mobileConfig[0].label) const [isDrawerOpen, setIsDrawerOpen] = React.useState(false) useEffect(() => { mobileConfig.forEach((mc) => { if (mc.link === currentPath) { setActive(mc.label) setDisplay(mc.label) } if (mc.link === currentPath && mc.subrows) { setActive(mc.subrows[0]?.label) setDisplay(`${mc.label} > ${mc.subrows[0]?.label}`) } if (mc.link !== currentPath && mc.subrows) { mc.subrows.forEach((sub) => { if (sub.link === currentPath) { setActive(sub.label) setDisplay(`${mc.label} > ${sub.label}`) } }) } }) }, [mobileConfig, active, currentPath]) return ( <> setIsDrawerOpen(false)} headerContent={c('selectATab')} qaTestId={`${qaTestId}-drawer`} > ) } export default MobileRouterTabs