From cd3d6da97be15fd6ad88bdcbb05894cd5b8f0122 Mon Sep 17 00:00:00 2001 From: Bernardo Sunderhus Date: Thu, 27 Oct 2022 12:15:00 +0000 Subject: [PATCH] fix(react-menu): removes exposing of internal type FluentTriggerComponent --- ...eact-menu-b1450657-0808-4269-92c5-c0c54be96f02.json | 7 +++++++ .../react-components/react-menu/etc/react-menu.api.md | 10 +++++----- .../react-menu/src/components/Menu/Menu.types.ts | 6 +++--- .../src/components/MenuTrigger/MenuTrigger.tsx | 5 +++-- 4 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 change/@fluentui-react-menu-b1450657-0808-4269-92c5-c0c54be96f02.json diff --git a/change/@fluentui-react-menu-b1450657-0808-4269-92c5-c0c54be96f02.json b/change/@fluentui-react-menu-b1450657-0808-4269-92c5-c0c54be96f02.json new file mode 100644 index 00000000000000..6eb2bd78225cce --- /dev/null +++ b/change/@fluentui-react-menu-b1450657-0808-4269-92c5-c0c54be96f02.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "removes exposing of internal type FluentTriggerComponent", + "packageName": "@fluentui/react-menu", + "email": "bernardo.sunderhus@gmail.com", + "dependentChangeType": "patch" +} diff --git a/packages/react-components/react-menu/etc/react-menu.api.md b/packages/react-components/react-menu/etc/react-menu.api.md index f8309b3fd1711f..11297f9654e3e0 100644 --- a/packages/react-components/react-menu/etc/react-menu.api.md +++ b/packages/react-components/react-menu/etc/react-menu.api.md @@ -13,14 +13,14 @@ import { ARIAButtonType } from '@fluentui/react-aria'; import type { ComponentProps } from '@fluentui/react-utilities'; import type { ComponentState } from '@fluentui/react-utilities'; import type { ContextSelector } from '@fluentui/react-context-selector'; -import type { FluentTriggerComponent } from '@fluentui/react-utilities'; import type { ForwardRefComponent } from '@fluentui/react-utilities'; import type { PositioningShorthand } from '@fluentui/react-positioning'; +import { PositioningVirtualElement } from '@fluentui/react-positioning'; import * as React_2 from 'react'; +import { SetVirtualMouseTarget } from '@fluentui/react-positioning'; import type { Slot } from '@fluentui/react-utilities'; import type { SlotClassNames } from '@fluentui/react-utilities'; import type { TriggerProps } from '@fluentui/react-utilities'; -import { usePositioningMouseTarget } from '@fluentui/react-positioning'; // @public export const Menu: React_2.FC; @@ -284,19 +284,19 @@ export type MenuSplitGroupState = ComponentState; // @public (undocumented) export type MenuState = ComponentState & Pick & Required> & { - contextTarget: ReturnType[0]; + contextTarget?: PositioningVirtualElement; isSubmenu: boolean; menuPopover: React_2.ReactNode; menuPopoverRef: React_2.MutableRefObject; menuTrigger: React_2.ReactNode; - setContextTarget: ReturnType[1]; + setContextTarget: SetVirtualMouseTarget; setOpen: (e: MenuOpenEvents, data: MenuOpenChangeData) => void; triggerId: string; triggerRef: React_2.MutableRefObject; }; // @public -export const MenuTrigger: React_2.FC & FluentTriggerComponent; +export const MenuTrigger: React_2.FC; // @public export type MenuTriggerChildProps = ARIAButtonResultProps & /** * Anchors the popper to the mouse click for context events */ - contextTarget: ReturnType[0]; + contextTarget?: PositioningVirtualElement; /** * Whether this menu is a submenu @@ -134,7 +134,7 @@ export type MenuState = ComponentState & /** * A callback to set the target of the popper to the mouse click for context events */ - setContextTarget: ReturnType[1]; + setContextTarget: SetVirtualMouseTarget; /** * Callback to open/close the popup diff --git a/packages/react-components/react-menu/src/components/MenuTrigger/MenuTrigger.tsx b/packages/react-components/react-menu/src/components/MenuTrigger/MenuTrigger.tsx index f25c8c579ef50f..6b380e0dd3687c 100644 --- a/packages/react-components/react-menu/src/components/MenuTrigger/MenuTrigger.tsx +++ b/packages/react-components/react-menu/src/components/MenuTrigger/MenuTrigger.tsx @@ -8,11 +8,12 @@ import type { FluentTriggerComponent } from '@fluentui/react-utilities'; * Wraps a trigger element as an only child * and adds the necessary event handling to open a popup menu */ -export const MenuTrigger: React.FC & FluentTriggerComponent = props => { +export const MenuTrigger: React.FC = props => { const state = useMenuTrigger_unstable(props); return renderMenuTrigger_unstable(state); }; MenuTrigger.displayName = 'MenuTrigger'; -MenuTrigger.isFluentTriggerComponent = true; +// type casting here is required to ensure internal type FluentTriggerComponent is not leaked +(MenuTrigger as FluentTriggerComponent).isFluentTriggerComponent = true;