Skip to content

Commit 3f6ed62

Browse files
authored
chore(Submenu): remove UNSTABLE_ prefix from submenu hooks (#6283)
1 parent 233b650 commit 3f6ed62

File tree

9 files changed

+32
-32
lines changed

9 files changed

+32
-32
lines changed

packages/@react-aria/menu/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export {useMenuTrigger} from './useMenuTrigger';
1414
export {useMenu} from './useMenu';
1515
export {useMenuItem} from './useMenuItem';
1616
export {useMenuSection} from './useMenuSection';
17-
export {UNSTABLE_useSubmenuTrigger} from './useSubmenuTrigger';
17+
export {useSubmenuTrigger} from './useSubmenuTrigger';
1818

1919
export type {AriaMenuProps} from '@react-types/menu';
2020
export type {AriaMenuTriggerProps, MenuTriggerAria} from './useMenuTrigger';

packages/@react-aria/menu/src/useSubmenuTrigger.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export interface SubmenuTriggerAria<T> {
6363
* @param state - State for the submenu trigger.
6464
* @param ref - Ref to the submenu trigger element.
6565
*/
66-
export function UNSTABLE_useSubmenuTrigger<T>(props: AriaSubmenuTriggerProps, state: SubmenuTriggerState, ref: RefObject<FocusableElement>): SubmenuTriggerAria<T> {
66+
export function useSubmenuTrigger<T>(props: AriaSubmenuTriggerProps, state: SubmenuTriggerState, ref: RefObject<FocusableElement>): SubmenuTriggerAria<T> {
6767
let {parentMenuRef, submenuRef, type = 'menu', isDisabled, node, delay = 200} = props;
6868
let submenuTriggerId = useId();
6969
let overlayId = useId();

packages/@react-spectrum/menu/src/ContextualHelpTrigger.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import ReactDOM from 'react-dom';
2121
import styles from '@adobe/spectrum-css-temp/components/menu/vars.css';
2222
import {SubmenuTriggerContext, useMenuStateContext} from './context';
2323
import {TrayHeaderWrapper} from './Menu';
24-
import {UNSTABLE_useSubmenuTrigger} from '@react-aria/menu';
25-
import {UNSTABLE_useSubmenuTriggerState} from '@react-stately/menu';
24+
import {useSubmenuTrigger} from '@react-aria/menu';
25+
import {useSubmenuTriggerState} from '@react-stately/menu';
2626

2727
interface MenuDialogTriggerProps {
2828
/** Whether the menu item is currently unavailable. */
@@ -44,9 +44,9 @@ function ContextualHelpTrigger(props: InternalMenuDialogTriggerProps): ReactElem
4444
let popoverRef = useRef(null);
4545
let {popoverContainer, trayContainerRef, rootMenuTriggerState, menu: parentMenuRef, state} = useMenuStateContext();
4646
let triggerNode = state.collection.getItem(targetKey);
47-
let submenuTriggerState = UNSTABLE_useSubmenuTriggerState({triggerKey: targetKey}, {...rootMenuTriggerState, ...state});
47+
let submenuTriggerState = useSubmenuTriggerState({triggerKey: targetKey}, {...rootMenuTriggerState, ...state});
4848
let submenuRef = unwrapDOMRef(popoverRef);
49-
let {submenuTriggerProps, popoverProps} = UNSTABLE_useSubmenuTrigger({
49+
let {submenuTriggerProps, popoverProps} = useSubmenuTrigger({
5050
node: triggerNode,
5151
parentMenuRef,
5252
submenuRef,

packages/@react-spectrum/menu/src/Menu.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ function Menu<T extends object>(props: SpectrumMenuProps<T>, ref: DOMRef<HTMLDiv
5959
}, [leftOffset, popoverContainer]);
6060

6161
let menuLevel = contextProps.submenuLevel ?? -1;
62-
let hasOpenSubmenu = state.collection.getItem(rootMenuTriggerState?.UNSTABLE_expandedKeysStack[menuLevel + 1]) != null;
62+
let hasOpenSubmenu = state.collection.getItem(rootMenuTriggerState?.expandedKeysStack[menuLevel + 1]) != null;
6363
useInteractOutside({
6464
ref: domRef,
6565
onInteractOutside: (e) => {
@@ -128,7 +128,7 @@ function Menu<T extends object>(props: SpectrumMenuProps<T>, ref: DOMRef<HTMLDiv
128128
export function TrayHeaderWrapper(props) {
129129
let {children, isSubmenu, hasOpenSubmenu, parentMenuTreeState, rootMenuTriggerState, onBackButtonPress, wrapperKeyDown, menuRef} = props;
130130
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/menu');
131-
let backButtonText = parentMenuTreeState?.collection.getItem(rootMenuTriggerState?.UNSTABLE_expandedKeysStack.slice(-1)[0])?.textValue;
131+
let backButtonText = parentMenuTreeState?.collection.getItem(rootMenuTriggerState?.expandedKeysStack.slice(-1)[0])?.textValue;
132132
let backButtonLabel = stringFormatter.format('backButton', {
133133
prevMenuButton: backButtonText
134134
});

packages/@react-spectrum/menu/src/SubmenuTrigger.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import {Popover} from '@react-spectrum/overlays';
1818
import React, {ReactElement, useRef} from 'react';
1919
import ReactDOM from 'react-dom';
2020
import styles from '@adobe/spectrum-css-temp/components/menu/vars.css';
21-
import {UNSTABLE_useSubmenuTrigger} from '@react-aria/menu';
22-
import {UNSTABLE_useSubmenuTriggerState} from '@react-stately/menu';
2321
import {useLocale} from '@react-aria/i18n';
22+
import {useSubmenuTrigger} from '@react-aria/menu';
23+
import {useSubmenuTriggerState} from '@react-stately/menu';
2424

2525
interface SubmenuTriggerProps {
2626
/**
@@ -42,8 +42,8 @@ function SubmenuTrigger(props: SubmenuTriggerProps) {
4242
let [menuTrigger, menu] = React.Children.toArray(children);
4343
let {popoverContainer, trayContainerRef, menu: parentMenuRef, submenu: menuRef, rootMenuTriggerState, state} = useMenuStateContext();
4444
let triggerNode = state.collection.getItem(targetKey);
45-
let submenuTriggerState = UNSTABLE_useSubmenuTriggerState({triggerKey: targetKey}, rootMenuTriggerState);
46-
let {submenuTriggerProps, submenuProps, popoverProps} = UNSTABLE_useSubmenuTrigger({
45+
let submenuTriggerState = useSubmenuTriggerState({triggerKey: targetKey}, rootMenuTriggerState);
46+
let {submenuTriggerProps, submenuProps, popoverProps} = useSubmenuTrigger({
4747
node: triggerNode,
4848
parentMenuRef,
4949
submenuRef: menuRef

packages/@react-stately/menu/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*/
1212

1313
export {useMenuTriggerState} from './useMenuTriggerState';
14-
export {UNSTABLE_useSubmenuTriggerState} from './useSubmenuTriggerState';
14+
export {useSubmenuTriggerState} from './useSubmenuTriggerState';
1515

1616
export type {MenuTriggerProps} from '@react-types/menu';
1717
export type {MenuTriggerState, RootMenuTriggerState} from './useMenuTriggerState';

packages/@react-stately/menu/src/useMenuTriggerState.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ export interface MenuTriggerState extends OverlayTriggerState {
2828

2929
export interface RootMenuTriggerState extends MenuTriggerState {
3030
/** Opens a specific submenu tied to a specific menu item at a specific level. */
31-
UNSTABLE_openSubmenu: (triggerKey: Key, level: number) => void,
31+
openSubmenu: (triggerKey: Key, level: number) => void,
3232

3333
/** Closes a specific submenu tied to a specific menu item at a specific level. */
34-
UNSTABLE_closeSubmenu: (triggerKey: Key, level: number) => void,
34+
closeSubmenu: (triggerKey: Key, level: number) => void,
3535

3636
/** An array of open submenu trigger keys within the menu tree.
3737
* The index of key within array matches the submenu level in the tree.
3838
*/
39-
UNSTABLE_expandedKeysStack: Key[],
39+
expandedKeysStack: Key[],
4040

4141
/** Closes the menu and all submenus in the menu tree. */
4242
close: () => void
@@ -92,8 +92,8 @@ export function useMenuTriggerState(props: MenuTriggerProps): RootMenuTriggerSta
9292
close() {
9393
closeAll();
9494
},
95-
UNSTABLE_expandedKeysStack: expandedKeysStack,
96-
UNSTABLE_openSubmenu: openSubmenu,
97-
UNSTABLE_closeSubmenu: closeSubmenu
95+
expandedKeysStack,
96+
openSubmenu,
97+
closeSubmenu
9898
};
9999
}

packages/@react-stately/menu/src/useSubmenuTriggerState.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,22 +43,22 @@ export interface SubmenuTriggerState extends OverlayTriggerState {
4343
* Manages state for a submenu trigger. Tracks whether the submenu is currently open, the level of the submenu, and
4444
* controls which item will receive focus when it opens.
4545
*/
46-
export function UNSTABLE_useSubmenuTriggerState(props: SubmenuTriggerProps, state: RootMenuTriggerState): SubmenuTriggerState {
46+
export function useSubmenuTriggerState(props: SubmenuTriggerProps, state: RootMenuTriggerState): SubmenuTriggerState {
4747
let {triggerKey} = props;
48-
let {UNSTABLE_expandedKeysStack, UNSTABLE_openSubmenu, UNSTABLE_closeSubmenu, close: closeAll} = state;
49-
let [submenuLevel] = useState(UNSTABLE_expandedKeysStack?.length);
50-
let isOpen = useMemo(() => UNSTABLE_expandedKeysStack[submenuLevel] === triggerKey, [UNSTABLE_expandedKeysStack, triggerKey, submenuLevel]);
48+
let {expandedKeysStack, openSubmenu, closeSubmenu, close: closeAll} = state;
49+
let [submenuLevel] = useState(expandedKeysStack?.length);
50+
let isOpen = useMemo(() => expandedKeysStack[submenuLevel] === triggerKey, [expandedKeysStack, triggerKey, submenuLevel]);
5151
let [focusStrategy, setFocusStrategy] = useState<FocusStrategy>(null);
5252

5353
let open = useCallback((focusStrategy: FocusStrategy = null) => {
5454
setFocusStrategy(focusStrategy);
55-
UNSTABLE_openSubmenu(triggerKey, submenuLevel);
56-
}, [UNSTABLE_openSubmenu, submenuLevel, triggerKey]);
55+
openSubmenu(triggerKey, submenuLevel);
56+
}, [openSubmenu, submenuLevel, triggerKey]);
5757

5858
let close = useCallback(() => {
5959
setFocusStrategy(null);
60-
UNSTABLE_closeSubmenu(triggerKey, submenuLevel);
61-
}, [UNSTABLE_closeSubmenu, submenuLevel, triggerKey]);
60+
closeSubmenu(triggerKey, submenuLevel);
61+
}, [closeSubmenu, submenuLevel, triggerKey]);
6262

6363
let toggle = useCallback((focusStrategy: FocusStrategy = null) => {
6464
setFocusStrategy(focusStrategy);

packages/react-aria-components/src/Menu.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ import {OverlayTriggerStateContext} from './Dialog';
2323
import {PopoverContext, PopoverProps} from './Popover';
2424
import {PressResponder, useHover, useInteractOutside} from '@react-aria/interactions';
2525
import React, {createContext, ForwardedRef, forwardRef, ReactElement, ReactNode, RefObject, useCallback, useContext, useEffect, useRef, useState} from 'react';
26-
import {RootMenuTriggerState, UNSTABLE_useSubmenuTriggerState} from '@react-stately/menu';
26+
import {RootMenuTriggerState, useSubmenuTriggerState} from '@react-stately/menu';
2727
import {Separator, SeparatorContext} from './Separator';
2828
import {TextContext} from './Text';
29-
import {UNSTABLE_useSubmenuTrigger} from '@react-aria/menu';
29+
import {useSubmenuTrigger} from '@react-aria/menu';
3030

3131
export const MenuContext = createContext<ContextValue<MenuProps<any>, HTMLDivElement>>(null);
3232
export const MenuStateContext = createContext<TreeState<unknown> | null>(null);
@@ -176,7 +176,7 @@ function MenuInner<T extends object>({props, collection, menuRef: ref}: MenuInne
176176
rootMenuTriggerState.close();
177177
}
178178
},
179-
isDisabled: isSubmenu || rootMenuTriggerState?.UNSTABLE_expandedKeysStack.length === 0
179+
isDisabled: isSubmenu || rootMenuTriggerState?.expandedKeysStack.length === 0
180180
});
181181

182182
let prevPopoverContainer = useRef<HTMLDivElement | null>(null) ;
@@ -384,9 +384,9 @@ function MenuItemTriggerInner<T>({item, popover, parentMenuRef, delay}: MenuItem
384384
let popoverContext = useSlottedContext(PopoverContext)!;
385385
let ref = useObjectRef<any>(item.props.ref);
386386
let rootMenuTriggerState = useContext(RootMenuTriggerStateContext)!;
387-
let submenuTriggerState = UNSTABLE_useSubmenuTriggerState({triggerKey: item.key}, rootMenuTriggerState);
387+
let submenuTriggerState = useSubmenuTriggerState({triggerKey: item.key}, rootMenuTriggerState);
388388
let submenuRef = useRef<HTMLDivElement>(null);
389-
let {submenuTriggerProps, submenuProps, popoverProps} = UNSTABLE_useSubmenuTrigger({
389+
let {submenuTriggerProps, submenuProps, popoverProps} = useSubmenuTrigger({
390390
node: item,
391391
parentMenuRef,
392392
submenuRef,

0 commit comments

Comments
 (0)