Page MenuHomec4science

Tabs.js
No OneTemporary

File Metadata

Created
Mon, Feb 10, 23:01
import * as React from 'react';
import { useMemo } from 'react';
import { useUncontrolledProp } from 'uncontrollable';
import { useSSRSafeId } from './ssr';
import TabContext from './TabContext';
import SelectableContext from './SelectableContext';
import TabPanel from './TabPanel';
import { jsx as _jsx } from "react/jsx-runtime";
const Tabs = props => {
const {
id: userId,
generateChildId: generateCustomChildId,
onSelect: propsOnSelect,
activeKey: propsActiveKey,
defaultActiveKey,
transition,
mountOnEnter,
unmountOnExit,
children
} = props;
const [activeKey, onSelect] = useUncontrolledProp(propsActiveKey, defaultActiveKey, propsOnSelect);
const id = useSSRSafeId(userId);
const generateChildId = useMemo(() => generateCustomChildId || ((key, type) => id ? `${id}-${type}-${key}` : null), [id, generateCustomChildId]);
const tabContext = useMemo(() => ({
onSelect,
activeKey,
transition,
mountOnEnter: mountOnEnter || false,
unmountOnExit: unmountOnExit || false,
getControlledId: key => generateChildId(key, 'tabpane'),
getControllerId: key => generateChildId(key, 'tab')
}), [onSelect, activeKey, transition, mountOnEnter, unmountOnExit, generateChildId]);
return /*#__PURE__*/_jsx(TabContext.Provider, {
value: tabContext,
children: /*#__PURE__*/_jsx(SelectableContext.Provider, {
value: onSelect || null,
children: children
})
});
};
Tabs.Panel = TabPanel;
export default Tabs;

Event Timeline