From cc0ec48b4ac27def14b3a5fe6927d55f1762d979 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 15 Jan 2024 16:42:16 +0100 Subject: [PATCH] feat: expose global `recomputeAllPoppers` helper --- docs/api/index.md | 12 ++++++++++++ packages/floating-vue/src/components/Popper.ts | 6 +++--- packages/floating-vue/src/index.ts | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/api/index.md b/docs/api/index.md index 8ebf9ed8..ee11bddf 100755 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -16,6 +16,18 @@ import { hideAllPoppers } from 'floating-vue' hideAllPoppers() ``` +### `recomputeAllPoppers` + +Recompute the position of all shown poppers. + +```js +import { recomputeAllPoppers } from 'floating-vue' + +recomputeAllPoppers() +``` + +This function is automatically called when the window is resized. + ### `createTooltip` `createTooltip(el, valueOrOptions, directiveModifiers)` creates a tooltip on a given element. diff --git a/packages/floating-vue/src/components/Popper.ts b/packages/floating-vue/src/components/Popper.ts index 4cea5c56..b6a4e825 100644 --- a/packages/floating-vue/src/components/Popper.ts +++ b/packages/floating-vue/src/components/Popper.ts @@ -1055,7 +1055,7 @@ if (typeof document !== 'undefined' && typeof window !== 'undefined') { window.addEventListener('mousedown', handleGlobalMousedown, true) window.addEventListener('click', handleGlobalClick, true) } - window.addEventListener('resize', computePositionAllShownPoppers) + window.addEventListener('resize', recomputeAllPoppers) } function handleGlobalMousedown (event) { @@ -1141,10 +1141,10 @@ function getAutoHideResult (popper, event) { return popper.autoHide } -function computePositionAllShownPoppers (event) { +export function recomputeAllPoppers () { for (let i = 0; i < shownPoppers.length; i++) { const popper = shownPoppers[i] - popper.$_computePosition(event) + popper.$_computePosition() } } diff --git a/packages/floating-vue/src/index.ts b/packages/floating-vue/src/index.ts index 6802186f..53994763 100644 --- a/packages/floating-vue/src/index.ts +++ b/packages/floating-vue/src/index.ts @@ -36,7 +36,7 @@ export const ThemeClass = PrivateThemeClass export const Tooltip = PrivateTooltip export const TooltipDirective = PrivateTooltipDirective // Utils -export { hideAllPoppers } from './components/Popper' +export { hideAllPoppers, recomputeAllPoppers } from './components/Popper' export * from './util/events' export { placements } from './util/popper' export type { Placement } from './util/popper'