diff --git a/packages/combobox/src/index.tsx b/packages/combobox/src/index.tsx index 6f9f0497c..5bac66c9a 100644 --- a/packages/combobox/src/index.tsx +++ b/packages/combobox/src/index.tsx @@ -719,7 +719,7 @@ export const ComboboxOption: ComponentWithForwardedRef< let index = useDescendant({ context: ComboboxDescendantContext, - element: ownRef.current, + element: ownRef.current!, value }); diff --git a/packages/menu-button/src/index.tsx b/packages/menu-button/src/index.tsx index 056a59be3..2edcfbc71 100644 --- a/packages/menu-button/src/index.tsx +++ b/packages/menu-button/src/index.tsx @@ -311,7 +311,7 @@ const MenuItemImpl = forwardRefWithAs( const index = useDescendant( { context: MenuDescendantContext, - element: ownRef.current, + element: ownRef.current!, key: valueText }, indexProp diff --git a/packages/tabs/src/index.tsx b/packages/tabs/src/index.tsx index 9b6714038..f7662de8d 100644 --- a/packages/tabs/src/index.tsx +++ b/packages/tabs/src/index.tsx @@ -464,7 +464,7 @@ export const Tab = forwardRefWithAs< const ownRef = useRef(null); const ref = useForkedRef(forwardedRef, ownRef); const index = useDescendant({ - element: ownRef.current, + element: ownRef.current!, context: TabsDescendantsContext }); @@ -572,7 +572,7 @@ export const TabPanel = forwardRefWithAs( let ownRef = useRef(null); let index = useDescendant({ - element: ownRef.current, + element: ownRef.current!, context: TabPanelDescendantsContext }); let isSelected = index === selectedIndex; diff --git a/packages/utils/src/index.tsx b/packages/utils/src/index.tsx index 00788ffc8..c9b9b426d 100644 --- a/packages/utils/src/index.tsx +++ b/packages/utils/src/index.tsx @@ -325,6 +325,7 @@ export { export type Descendant = P & { element: (T extends HTMLElement ? T : HTMLElement) | null; + index: number; }; export interface IDescendantContext { @@ -375,7 +376,9 @@ export function useDescendant( context, element, ...rest - }: Descendant & { context: React.Context> }, + }: Omit, "index"> & { + context: React.Context>; + }, indexProp?: number ) { let [, forceUpdate] = useState(); @@ -450,7 +453,7 @@ export function DescendantProvider({ ); }); - let newItem = { element, ...rest } as Descendant; + let newItem = { element, index, ...rest } as Descendant; // If an index is not found we will push the element to the end. if (index === -1) {