From 6c433f1f177b201ccd64e3be9c0eca68d84cf5a7 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Wed, 4 Nov 2020 21:43:25 +0800 Subject: [PATCH] refactor: simpler logic for resize observer --- src/components/SizeObserver.tsx | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/components/SizeObserver.tsx b/src/components/SizeObserver.tsx index 4f5ce0a..0280451 100644 --- a/src/components/SizeObserver.tsx +++ b/src/components/SizeObserver.tsx @@ -30,18 +30,17 @@ export function SizeObserver({ type = 'div', children, ...rest }: Props) { }, []) React.useEffect(() => { - if (features.resize) { - const observer = new window.ResizeObserver(entries => { - const entry = entries[0] - if (!entry) return - const rect = entry.contentRect - safeSetSize(rect) - }) - - if (ref.current) observer.observe(ref.current) - return () => observer.disconnect() - } else { - if (ref.current) { + if (ref.current) { + if (features.resize) { + const observer = new window.ResizeObserver(entries => { + const entry = entries[0] + if (!entry) return + const rect = entry.contentRect + safeSetSize(rect) + }) + observer.observe(ref.current) + return () => observer.disconnect() + } else { if ('getBoundingClientRect' in ref.current) { const rect = ref.current.getBoundingClientRect() setSize(rect)