From 6ff189a49b30a7e76237748b42c2f2a587e2a5ad Mon Sep 17 00:00:00 2001 From: okxiaoliang4 <353742991@qq.com> Date: Tue, 17 May 2022 18:37:10 +0800 Subject: [PATCH 1/3] feat: update size when `orientationchange` event --- packages/core/useWindowSize/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/useWindowSize/index.ts b/packages/core/useWindowSize/index.ts index 20e9e09f267..6f93c8fcedb 100644 --- a/packages/core/useWindowSize/index.ts +++ b/packages/core/useWindowSize/index.ts @@ -29,6 +29,7 @@ export function useWindowSize({ window = defaultWindow, initialWidth = Infinity, update() tryOnMounted(update) useEventListener('resize', update, { passive: true }) + useEventListener('orientationchange', update, { passive: true }) return { width, height } } From 8b917db4e3bc96d49f094957fba30a1dd066f5a9 Mon Sep 17 00:00:00 2001 From: okxiaoliang4 <353742991@qq.com> Date: Wed, 18 May 2022 15:18:33 +0800 Subject: [PATCH 2/3] feat(useWindowSize): new option --- packages/core/useWindowSize/index.test.ts | 12 ++++++++++++ packages/core/useWindowSize/index.ts | 19 +++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/packages/core/useWindowSize/index.test.ts b/packages/core/useWindowSize/index.test.ts index 6565fa79572..0f3bcd1a3d2 100644 --- a/packages/core/useWindowSize/index.test.ts +++ b/packages/core/useWindowSize/index.test.ts @@ -34,4 +34,16 @@ describe('useWindowSize', () => { expect(call[0]).toEqual('resize') expect(call[2]).toEqual({ passive: true }) }) + + it('sets handler for window "orientationchange" event', async () => { + useWindowSize({ initialWidth: 100, initialHeight: 200, listenOrientation: true }) + + await nextTick() + + expect(addEventListenerSpy).toHaveBeenCalledTimes(2) + + const call = addEventListenerSpy.mock.calls[1] as any + expect(call[0]).toEqual('orientationchange') + expect(call[2]).toEqual({ passive: true }) + }) }) diff --git a/packages/core/useWindowSize/index.ts b/packages/core/useWindowSize/index.ts index 6f93c8fcedb..42cf670f474 100644 --- a/packages/core/useWindowSize/index.ts +++ b/packages/core/useWindowSize/index.ts @@ -7,6 +7,12 @@ import { defaultWindow } from '../_configurable' export interface WindowSizeOptions extends ConfigurableWindow { initialWidth?: number initialHeight?: number + /** + * Listen to window `orientationchange` event + * + * @default false + */ + listenOrientation?: boolean } /** @@ -15,7 +21,14 @@ export interface WindowSizeOptions extends ConfigurableWindow { * @see https://vueuse.org/useWindowSize * @param options */ -export function useWindowSize({ window = defaultWindow, initialWidth = Infinity, initialHeight = Infinity }: WindowSizeOptions = {}) { +export function useWindowSize(options: WindowSizeOptions = {}) { + const { + window = defaultWindow, + initialWidth = Infinity, + initialHeight = Infinity, + listenOrientation = false, + } = options + const width = ref(initialWidth) const height = ref(initialHeight) @@ -29,7 +42,9 @@ export function useWindowSize({ window = defaultWindow, initialWidth = Infinity, update() tryOnMounted(update) useEventListener('resize', update, { passive: true }) - useEventListener('orientationchange', update, { passive: true }) + + if (listenOrientation) + useEventListener('orientationchange', update, { passive: true }) return { width, height } } From 0b1924ccded6e740af1748bae8bbb7ea4515143f Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 6 Jul 2022 11:10:36 +0800 Subject: [PATCH 3/3] Apply suggestions from code review --- packages/core/useWindowSize/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/useWindowSize/index.ts b/packages/core/useWindowSize/index.ts index 42cf670f474..ccaaa7cf251 100644 --- a/packages/core/useWindowSize/index.ts +++ b/packages/core/useWindowSize/index.ts @@ -10,7 +10,7 @@ export interface WindowSizeOptions extends ConfigurableWindow { /** * Listen to window `orientationchange` event * - * @default false + * @default true */ listenOrientation?: boolean } @@ -26,7 +26,7 @@ export function useWindowSize(options: WindowSizeOptions = {}) { window = defaultWindow, initialWidth = Infinity, initialHeight = Infinity, - listenOrientation = false, + listenOrientation = true, } = options const width = ref(initialWidth)