You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
'use client';
|
|
|
|
import * as React from 'react';
|
|
import { TabsContext } from '../Tabs/TabsContext';
|
|
import { CompoundComponentContext } from '../useCompound';
|
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
/**
|
|
* Sets up the contexts for the underlying Tab and TabPanel components.
|
|
*
|
|
* @ignore - do not document.
|
|
*/
|
|
export function TabsProvider(props) {
|
|
var valueProp = props.value,
|
|
children = props.children;
|
|
var direction = valueProp.direction,
|
|
getItemIndex = valueProp.getItemIndex,
|
|
onSelected = valueProp.onSelected,
|
|
orientation = valueProp.orientation,
|
|
registerItem = valueProp.registerItem,
|
|
registerTabIdLookup = valueProp.registerTabIdLookup,
|
|
selectionFollowsFocus = valueProp.selectionFollowsFocus,
|
|
totalSubitemCount = valueProp.totalSubitemCount,
|
|
value = valueProp.value,
|
|
getTabId = valueProp.getTabId,
|
|
getTabPanelId = valueProp.getTabPanelId;
|
|
var compoundComponentContextValue = React.useMemo(function () {
|
|
return {
|
|
getItemIndex: getItemIndex,
|
|
registerItem: registerItem,
|
|
totalSubitemCount: totalSubitemCount
|
|
};
|
|
}, [registerItem, getItemIndex, totalSubitemCount]);
|
|
var tabsContextValue = React.useMemo(function () {
|
|
return {
|
|
direction: direction,
|
|
getTabId: getTabId,
|
|
getTabPanelId: getTabPanelId,
|
|
onSelected: onSelected,
|
|
orientation: orientation,
|
|
registerTabIdLookup: registerTabIdLookup,
|
|
selectionFollowsFocus: selectionFollowsFocus,
|
|
value: value
|
|
};
|
|
}, [direction, getTabId, getTabPanelId, onSelected, orientation, registerTabIdLookup, selectionFollowsFocus, value]);
|
|
return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {
|
|
value: compoundComponentContextValue,
|
|
children: /*#__PURE__*/_jsx(TabsContext.Provider, {
|
|
value: tabsContextValue,
|
|
children: children
|
|
})
|
|
});
|
|
} |