UNPKG

@equinor/eds-core-react

Version:

The React implementation of the Equinor Design System

30 lines (27 loc) 839 B
import { forwardRef, useContext, Children, isValidElement, cloneElement } from 'react'; import { TabsContext } from './Tabs.context.js'; import { jsx } from 'react/jsx-runtime'; const TabPanels = /*#__PURE__*/forwardRef(function TabPanels({ children, conditionalRender, ...props }, ref) { const { activeTab, tabsId } = useContext(TabsContext); const Panels = Children.map(children, (child, $index) => { if (! /*#__PURE__*/isValidElement(child) || conditionalRender && activeTab !== $index) return null; return /*#__PURE__*/cloneElement(child, { id: `${tabsId}-panel-${$index + 1}`, 'aria-labelledby': `${tabsId}-tab-${$index + 1}`, hidden: activeTab !== $index }); }); return /*#__PURE__*/jsx("div", { ref: ref, ...props, children: Panels }); }); export { TabPanels };