FrontPastel/node_modules/@mui/base/legacy/useTabs/TabsProvider.js

52 lines
1.8 KiB
JavaScript
Raw Normal View History

2024-04-17 13:55:11 +00:00
'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
})
});
}