Skip to content

Commit d1dd871

Browse files
committed
fixed initial selectedTabIndex on Tabs
1 parent da26384 commit d1dd871

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/Tabs.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import React, {
77
useState,
88
useEffect,
99
type ReactNode,
10-
type CSSProperties
10+
type CSSProperties,
11+
useCallback
1112
} from "react";
1213
import type { FrIconClassName, RiIconClassName } from "./fr/generatedFromCss/classNames";
1314
import { symToStr } from "tsafe/symToStr";
@@ -85,16 +86,17 @@ export const Tabs = memo(
8586
return index === -1 ? 0 : index;
8687
};
8788

89+
const currentSelectedTabIndex = getSelectedTabIndex();
90+
8891
const buttonRefs = React.useRef<Array<HTMLButtonElement | null>>([]);
8992

90-
const [selectedTabIndex, setSelectedTabIndex] = useState<number>(getSelectedTabIndex);
93+
const [selectedTabIndex, setSelectedTabIndex] = useState<number>(currentSelectedTabIndex);
9194

9295
useEffect(() => {
93-
if (selectedTabId === undefined) {
94-
return;
96+
if (selectedTabId) {
97+
setSelectedTabIndex(currentSelectedTabIndex);
9598
}
96-
setSelectedTabIndex(getSelectedTabIndex());
97-
}, [selectedTabId]);
99+
}, [selectedTabId, currentSelectedTabIndex]);
98100

99101
const onTabClickFactory = useCallbackFactory(([tabIndex]: [number]) => {
100102
if (selectedTabId === undefined) {

0 commit comments

Comments
 (0)