import { useContext, useEffect, useState } from 'react'; import { Route, Routes, useLocation, useNavigate } from 'react-router-dom'; // @ts-ignore import { Tabs, TabList, Tab } from '@carbon/react'; import TaskShow from './TaskShow'; import ErrorContext from '../contexts/ErrorContext'; import MyTasks from './MyTasks'; import GroupedTasks from './GroupedTasks'; import CompletedInstances from './CompletedInstances'; import CreateNewInstance from './CreateNewInstance'; export default function HomePageRoutes() { const location = useLocation(); const setErrorMessage = (useContext as any)(ErrorContext)[1]; const [selectedTabIndex, setSelectedTabIndex] = useState(0); const navigate = useNavigate(); useEffect(() => { setErrorMessage(null); let newSelectedTabIndex = 0; if (location.pathname.match(/^\/tasks\/grouped\b/)) { newSelectedTabIndex = 1; } else if (location.pathname.match(/^\/tasks\/completed-instances\b/)) { newSelectedTabIndex = 2; } else if (location.pathname.match(/^\/tasks\/create-new-instance\b/)) { newSelectedTabIndex = 3; } setSelectedTabIndex(newSelectedTabIndex); }, [location, setErrorMessage]); const renderTabs = () => { if (location.pathname.match(/^\/tasks\/\d+\/\b/)) { return null; } return ( <> navigate('/tasks/my-tasks')}>My Tasks navigate('/tasks/grouped')}>Grouped Tasks navigate('/tasks/completed-instances')}> Completed Instances navigate('/tasks/create-new-instance')}> Create New Instance +
); }; return ( <> {renderTabs()} } /> } /> } /> } /> } /> } /> ); }