From f546e38c5bee2434068b5080b560faffb86be54e Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Thu, 14 Mar 2024 11:24:55 +0530 Subject: [PATCH] fix issue in entitypage tabs with nav link tabs Signed-off-by: npiyush97 --- .changeset/wicked-bugs-joke.md | 5 +++ .../src/layout/HeaderTabs/HeaderTabs.tsx | 32 +++++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 .changeset/wicked-bugs-joke.md diff --git a/.changeset/wicked-bugs-joke.md b/.changeset/wicked-bugs-joke.md new file mode 100644 index 0000000000..3d1b866411 --- /dev/null +++ b/.changeset/wicked-bugs-joke.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': minor +--- + +Added `LinkTab` and `href` attributes to `nav` tabs for proper navigation. diff --git a/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx b/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx index 799eab1eb5..1089c1632f 100644 --- a/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx +++ b/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx @@ -17,6 +17,7 @@ import Box from '@material-ui/core/Box'; import { makeStyles } from '@material-ui/core/styles'; import TabUI, { TabProps } from '@material-ui/core/Tab'; import Tabs from '@material-ui/core/Tabs'; +import Tab from '@material-ui/core/Tab'; import React, { useCallback, useEffect, useState } from 'react'; // TODO(blam): Remove this implementation when the Tabs are ready @@ -57,18 +58,42 @@ const useStyles = makeStyles( { name: 'BackstageHeaderTabs' }, ); -export type Tab = { +export type TabProp = { id: string; label: string; tabProps?: TabProps; }; type HeaderTabsProps = { - tabs: Tab[]; + tabs: TabProp[]; onChange?: (index: number) => void; selectedIndex?: number; }; +function a11yProps(index: any) { + return { + id: `nav-tab-${index}`, + 'aria-controls': `nav-tabpanel-${index}`, + }; +} + +interface LinkTabProps { + label?: string; + href?: string; +} + +function LinkTab(props: LinkTabProps) { + return ( + ) => { + event.preventDefault(); + }} + {...props} + /> + ); +} + /** * Horizontal Tabs component * @@ -108,7 +133,7 @@ export function HeaderTabs(props: HeaderTabsProps) { value={selectedTab} > {tabs.map((tab, index) => ( - ))}