Files
explore/toolkit/components/RoutedTabs/useActiveTabFromQuery.tsx
T
tom goriunovandGitHub f6725649da UI toolkit package (#2691)
* first version of the pack

* single entry point

* add custom components to the package

* move form components to toolkit

* add more utils and hooks to the package

* minor fixes

* add CI workflow

* update readme and package.json

* fix ts

* fix build of env-validator

* fix docker build

* fix icons size

* test fixes

* more test fixes
2025-04-21 19:44:22 +02:00

23 lines
575 B
TypeScript

import { useRouter } from 'next/router';
import type { TabItem } from '../AdaptiveTabs/types';
import { castToString } from '../../utils/guards';
export default function useActiveTabFromQuery(tabs: Array<TabItem>) {
const router = useRouter();
const tabFromQuery = castToString(router.query.tab);
if (!tabFromQuery) {
return;
}
return tabs.find((tab) => {
if (Array.isArray(tab.id)) {
return tab.id.includes(tabFromQuery);
}
return tab.id === tabFromQuery || ('subTabs' in tab && tab.subTabs?.some((id) => id === tabFromQuery));
});
}