MCPcopy Index your code
hub / github.com/adobe/react-spectrum / TabPanelInner

Function TabPanelInner

packages/react-aria-components/src/Tabs.tsx:595–653  ·  view source on GitHub ↗
(
  props: TabPanelProps & {
    tabPanelRef: RefObject<HTMLDivElement | null>;
    isInitiallySelected: boolean;
    isExiting: boolean;
  }
)

Source from the content-addressed store, hash-verified

593});
594
595function TabPanelInner(
596 props: TabPanelProps & {
597 tabPanelRef: RefObject<HTMLDivElement | null>;
598 isInitiallySelected: boolean;
599 isExiting: boolean;
600 }
601) {
602 let state = useContext(TabListStateContext)!;
603 // eslint-disable-next-line @typescript-eslint/no-unused-vars
604 let {id, tabPanelRef: ref, isInitiallySelected, isExiting, ...otherProps} = props;
605 let {tabPanelProps} = useTabPanel(props, state, ref);
606 let {focusProps, isFocused, isFocusVisible} = useFocusRing();
607
608 let isSelected = state.selectedKey === props.id;
609 let isEntering = useEnterAnimation(ref) && !isInitiallySelected;
610 let renderProps = useRenderProps({
611 ...props,
612 defaultClassName: 'react-aria-TabPanel',
613 values: {
614 isFocused,
615 isFocusVisible,
616 // @ts-ignore - compatibility with React < 19
617 isInert: inertValue(!isSelected),
618 isEntering,
619 isExiting,
620 state
621 }
622 });
623
624 let DOMProps = filterDOMProps(otherProps, {global: true});
625 delete DOMProps.id;
626
627 let domProps = isSelected
628 ? mergeProps(DOMProps, tabPanelProps, focusProps, renderProps)
629 : mergeProps(DOMProps, renderProps);
630
631 return (
632 <dom.div
633 {...domProps}
634 ref={ref}
635 data-focused={isFocused || undefined}
636 data-focus-visible={isFocusVisible || undefined}
637 // @ts-ignore
638 inert={inertValue(!isSelected || props.inert)}
639 data-inert={!isSelected ? 'true' : undefined}
640 data-entering={isEntering || undefined}
641 data-exiting={isExiting || undefined}>
642 <Provider
643 values={[
644 [TabsContext, null],
645 [TabListStateContext, null]
646 ]}>
647 <CollectionRendererContext.Provider value={DefaultCollectionRenderer}>
648 {renderProps.children}
649 </CollectionRendererContext.Provider>
650 </Provider>
651 </dom.div>
652 );

Callers

nothing calls this directly

Calls 7

useFocusRingFunction · 0.90
useEnterAnimationFunction · 0.90
useRenderPropsFunction · 0.90
inertValueFunction · 0.90
filterDOMPropsFunction · 0.90
mergePropsFunction · 0.90
useTabPanelFunction · 0.85

Tested by

no test coverage detected