Merge pull request #12697 from backstage/blam/double-navigation-entry

This commit is contained in:
Himanshu Mishra
2022-07-18 22:03:20 +05:30
committed by GitHub
2 changed files with 15 additions and 7 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-components': patch
---
Work around a bug calling `onChange` twice in `mui` for `RoutedTab` so you don't have to press back twice to navigate through tabs
@@ -20,7 +20,7 @@
import { makeStyles } from '@material-ui/core/styles';
import TabUI, { TabProps } from '@material-ui/core/Tab';
import Tabs from '@material-ui/core/Tabs';
import React, { useEffect, useState } from 'react';
import React, { useCallback, useEffect, useState } from 'react';
/** @public */
export type HeaderTabsClassKey =
@@ -80,12 +80,15 @@ export function HeaderTabs(props: HeaderTabsProps) {
const [selectedTab, setSelectedTab] = useState<number>(selectedIndex ?? 0);
const styles = useStyles();
const handleChange = (_: React.ChangeEvent<{}>, index: number) => {
if (selectedIndex === undefined) {
setSelectedTab(index);
}
if (onChange) onChange(index);
};
const handleChange = useCallback(
(_: React.ChangeEvent<{}>, index: number) => {
if (selectedIndex === undefined) {
setSelectedTab(index);
}
if (onChange && selectedIndex !== index) onChange(index);
},
[selectedIndex, onChange],
);
useEffect(() => {
if (selectedIndex !== undefined) {