From a92108af380e7f5243c79b91a0ea1668f0e59ee8 Mon Sep 17 00:00:00 2001 From: mingkaili Date: Mon, 6 Jul 2020 15:51:06 +0800 Subject: [PATCH 1/2] fix: returns correct state when referenceElement becomes null --- src/usePopper.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/usePopper.js b/src/usePopper.js index 762170e..2bbc3c1 100644 --- a/src/usePopper.js +++ b/src/usePopper.js @@ -107,6 +107,10 @@ export const usePopper = ( useIsomorphicLayoutEffect(() => { if (referenceElement == null || popperElement == null) { + if (popperInstanceRef.current) { + popperInstanceRef.current.destroy(); + popperInstanceRef.current = null; + } return; } From a14439db9405ab2c1f7981ef4026ffd52a5d7059 Mon Sep 17 00:00:00 2001 From: mingkaili Date: Mon, 6 Jul 2020 21:12:25 +0800 Subject: [PATCH 2/2] fix: reset styles and attributes as well --- src/usePopper.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/usePopper.js b/src/usePopper.js index 2bbc3c1..0e2b452 100644 --- a/src/usePopper.js +++ b/src/usePopper.js @@ -107,10 +107,17 @@ export const usePopper = ( useIsomorphicLayoutEffect(() => { if (referenceElement == null || popperElement == null) { - if (popperInstanceRef.current) { - popperInstanceRef.current.destroy(); - popperInstanceRef.current = null; - } + popperInstanceRef.current = null; + setState({ + styles: { + popper: { + position: optionsWithDefaults.strategy, + left: '0', + top: '0', + }, + }, + attributes: {}, + }); return; }