diff --git a/change/@fluentui-react-positioning-12f69b12-6e86-4415-8a0d-b34318f3b71e.json b/change/@fluentui-react-positioning-12f69b12-6e86-4415-8a0d-b34318f3b71e.json new file mode 100644 index 0000000000000..1a80439810b10 --- /dev/null +++ b/change/@fluentui-react-positioning-12f69b12-6e86-4415-8a0d-b34318f3b71e.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "exposes new typings to avoid exposing internal methods", + "packageName": "@fluentui/react-positioning", + "email": "bernardo.sunderhus@gmail.com", + "dependentChangeType": "patch" +} diff --git a/packages/react-components/react-positioning/etc/react-positioning.api.md b/packages/react-components/react-positioning/etc/react-positioning.api.md index 792c36e9a9648..417c02185fd89 100644 --- a/packages/react-components/react-positioning/etc/react-positioning.api.md +++ b/packages/react-components/react-positioning/etc/react-positioning.api.md @@ -101,6 +101,9 @@ export type PositioningVirtualElement = { // @public (undocumented) export function resolvePositioningShorthand(shorthand: PositioningShorthand | undefined | null): Readonly; +// @public (undocumented) +export type SetVirtualMouseTarget = (event: React_2.MouseEvent | MouseEvent | undefined | null) => void; + // @internal (undocumented) export function usePositioning(options: UsePositioningOptions): { targetRef: React_2.MutableRefObject; @@ -109,7 +112,7 @@ export function usePositioning(options: UsePositioningOptions): { }; // @internal -export const usePositioningMouseTarget: (initialState?: PositioningVirtualElement | (() => PositioningVirtualElement) | undefined) => readonly [PositioningVirtualElement | undefined, (event: React_2.MouseEvent | MouseEvent | undefined | null) => void]; +export const usePositioningMouseTarget: (initialState?: PositioningVirtualElement | (() => PositioningVirtualElement) | undefined) => readonly [PositioningVirtualElement | undefined, SetVirtualMouseTarget]; // (No @packageDocumentation comment for this package) diff --git a/packages/react-components/react-positioning/src/index.ts b/packages/react-components/react-positioning/src/index.ts index 23ed0f051bc7c..11e68a7c54622 100644 --- a/packages/react-components/react-positioning/src/index.ts +++ b/packages/react-components/react-positioning/src/index.ts @@ -19,4 +19,5 @@ export type { PositioningShorthand, PositioningShorthandValue, PositioningVirtualElement, + SetVirtualMouseTarget, } from './types'; diff --git a/packages/react-components/react-positioning/src/types.ts b/packages/react-components/react-positioning/src/types.ts index 455e2bfdc7f98..7e5d84a69c5a1 100644 --- a/packages/react-components/react-positioning/src/types.ts +++ b/packages/react-components/react-positioning/src/types.ts @@ -57,6 +57,8 @@ export type PositioningVirtualElement = { contextElement?: Element; }; +export type SetVirtualMouseTarget = (event: React.MouseEvent | MouseEvent | undefined | null) => void; + export interface PositioningOptions { /** Alignment for the component. Only has an effect if used with the @see position option */ align?: Alignment; diff --git a/packages/react-components/react-positioning/src/usePositioningMouseTarget.ts b/packages/react-components/react-positioning/src/usePositioningMouseTarget.ts index 38ca692b33de4..5d8a81dce66cf 100644 --- a/packages/react-components/react-positioning/src/usePositioningMouseTarget.ts +++ b/packages/react-components/react-positioning/src/usePositioningMouseTarget.ts @@ -1,6 +1,6 @@ import * as React from 'react'; import { createVirtualElementFromClick } from './createVirtualElementFromClick'; -import { PositioningVirtualElement } from './types'; +import { PositioningVirtualElement, SetVirtualMouseTarget } from './types'; /** * @internal @@ -16,7 +16,7 @@ export const usePositioningMouseTarget = ( ) => { const [virtualElement, setVirtualElement] = React.useState(initialState); - const setVirtualMouseTarget = (event: React.MouseEvent | MouseEvent | undefined | null) => { + const setVirtualMouseTarget: SetVirtualMouseTarget = event => { if (event === undefined || event === null) { setVirtualElement(undefined); return;