UNPKG

@yamada-ui/tabs

Version:

Yamada UI tabs component

56 lines (54 loc) 1.64 kB
"use client" import { useTabDescendant, useTabPanelContext, useTabPanelDescendant, useTabsContext } from "./chunk-BUHUHEQA.mjs"; // src/tab-panel.tsx import { forwardRef, ui } from "@yamada-ui/core"; import { useLazyDisclosure } from "@yamada-ui/use-disclosure"; import { cx, mergeRefs } from "@yamada-ui/utils"; import { useId, useRef } from "react"; import { jsx } from "react/jsx-runtime"; var TabPanel = forwardRef( ({ id, className, children, ...rest }, ref) => { var _a; const uuid = useId(); const { lazy: enabled, lazyBehavior: mode, styles } = useTabsContext(); const { index, selected } = useTabPanelContext(); const { register } = useTabPanelDescendant(); const { descendants } = useTabDescendant(); const hasBeenSelected = useRef(false); const tabId = (_a = descendants.value(index)) == null ? void 0 : _a.node.id; if (selected) hasBeenSelected.current = true; const shouldRenderChildren = useLazyDisclosure({ enabled, isSelected: selected, mode, wasSelected: hasBeenSelected.current }); const css = { ...styles.tabPanel }; id != null ? id : id = uuid; return /* @__PURE__ */ jsx( ui.div, { id, ref: mergeRefs(register, ref), className: cx("ui-tabs__panel", className), "aria-labelledby": tabId, role: "tabpanel", __css: css, ...rest, hidden: !selected, children: shouldRenderChildren ? children : null } ); } ); TabPanel.displayName = "TabPanel"; TabPanel.__ui__ = "TabPanel"; export { TabPanel }; //# sourceMappingURL=chunk-IYJM52AT.mjs.map