From 3267796198e3dce275fced8ce52a77d0ff254a93 Mon Sep 17 00:00:00 2001 From: minami-minami Date: Tue, 8 Nov 2022 00:11:00 +0900 Subject: [PATCH 1/4] fix(devtools): unset padding for resetting after closed --- packages/react-query-devtools/src/devtools.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/react-query-devtools/src/devtools.tsx b/packages/react-query-devtools/src/devtools.tsx index 7d6d0fcc4e..fd4cc60e23 100644 --- a/packages/react-query-devtools/src/devtools.tsx +++ b/packages/react-query-devtools/src/devtools.tsx @@ -277,6 +277,8 @@ export function ReactQueryDevtools({ return () => { window.removeEventListener('resize', run) if (root?.parentElement && typeof previousValue === 'string') { + // unset padding for resetting + root.parentElement.style.padding = '' root.parentElement.style[styleProp] = previousValue } } From 959e3328615b9c36d7e1bd220b8aca73442640e2 Mon Sep 17 00:00:00 2001 From: minami-minami Date: Wed, 9 Nov 2022 01:31:01 +0900 Subject: [PATCH 2/4] fix(devtools): restore inline padding styles after closed --- .../react-query-devtools/src/devtools.tsx | 67 +++++++++++++------ 1 file changed, 45 insertions(+), 22 deletions(-) diff --git a/packages/react-query-devtools/src/devtools.tsx b/packages/react-query-devtools/src/devtools.tsx index fd4cc60e23..599d8708f6 100644 --- a/packages/react-query-devtools/src/devtools.tsx +++ b/packages/react-query-devtools/src/devtools.tsx @@ -247,26 +247,37 @@ export function ReactQueryDevtools({ }, [isResolvedOpen]) React.useEffect(() => { - if (isResolvedOpen) { - const root = rootRef.current + if (isResolvedOpen && rootRef.current?.parentElement) { + const { parentElement } = rootRef.current const styleProp = getSidedProp('padding', panelPosition) const isVertical = isVerticalSide(panelPosition) - const previousValue = root?.parentElement?.style[styleProp] + + const previousPaddings = (({ + padding, + paddingTop, + paddingBottom, + paddingLeft, + paddingRight, + }) => ({ + padding, + paddingTop, + paddingBottom, + paddingLeft, + paddingRight, + }))(parentElement.style) const run = () => { - if (root?.parentElement) { - // reset the padding - root.parentElement.style.padding = '0px' - root.parentElement.style.paddingTop = '0px' - root.parentElement.style.paddingBottom = '0px' - root.parentElement.style.paddingLeft = '0px' - root.parentElement.style.paddingRight = '0px' - // set the new padding based on the new panel position - - root.parentElement.style[styleProp] = `${ - isVertical ? devtoolsWidth : devtoolsHeight - }px` - } + // reset the padding + parentElement.style.padding = '0px' + parentElement.style.paddingTop = '0px' + parentElement.style.paddingBottom = '0px' + parentElement.style.paddingLeft = '0px' + parentElement.style.paddingRight = '0px' + // set the new padding based on the new panel position + + parentElement.style[styleProp] = `${ + isVertical ? devtoolsWidth : devtoolsHeight + }px` } run() @@ -276,11 +287,12 @@ export function ReactQueryDevtools({ return () => { window.removeEventListener('resize', run) - if (root?.parentElement && typeof previousValue === 'string') { - // unset padding for resetting - root.parentElement.style.padding = '' - root.parentElement.style[styleProp] = previousValue - } + Object.entries(previousPaddings).forEach( + ([property, previousValue]) => { + parentElement.style[property as keyof typeof previousPaddings] = + previousValue + }, + ) } } } @@ -378,7 +390,18 @@ export function ReactQueryDevtools({ - ) : null} + ) : ( +