UNPKG

@wordpress/components

Version:
57 lines (53 loc) 1.57 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.TabPanel = void 0; var _react = require("@ariakit/react"); var _element = require("@wordpress/element"); var _styles = require("./styles"); var _warning = _interopRequireDefault(require("@wordpress/warning")); var _context = require("./context"); var _jsxRuntime = require("react/jsx-runtime"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ const TabPanel = exports.TabPanel = (0, _element.forwardRef)(function TabPanel({ children, tabId, focusable = true, ...otherProps }, ref) { const context = (0, _context.useTabsContext)(); const selectedId = (0, _react.useStoreState)(context?.store, 'selectedId'); if (!context) { globalThis.SCRIPT_DEBUG === true ? (0, _warning.default)('`Tabs.TabPanel` must be wrapped in a `Tabs` component.') : void 0; return null; } const { store, instanceId } = context; const instancedTabId = `${instanceId}-${tabId}`; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.TabPanel, { ref: ref, store: store // For TabPanel, the id passed here is the id attribute of the DOM // element. // `tabId` is the id of the tab that controls this panel. , id: `${instancedTabId}-view`, tabId: instancedTabId, focusable: focusable, ...otherProps, children: selectedId === instancedTabId && children }); }); //# sourceMappingURL=tabpanel.js.map