Skip to content

Commit b6551bf

Browse files
committed
refactor(CPopover, CTooltip): prevent interface flickering when component change visibility
1 parent 3b9be15 commit b6551bf

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

packages/coreui-react/src/components/popover/CPopover.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
149149
}
150150

151151
initPopper(togglerRef.current, popoverRef.current, popperConfig)
152+
popoverRef.current.style.removeProperty('display')
152153
popoverRef.current.classList.add('show')
153154
onShow && onShow()
154155
}
@@ -160,6 +161,10 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
160161
popoverRef.current.classList.remove('show')
161162
onHide && onHide()
162163
executeAfterTransition(() => {
164+
if (popoverRef.current) {
165+
popoverRef.current.style.display = 'none'
166+
}
167+
163168
destroyPopper()
164169
setMounted(false)
165170
}, popoverRef.current)
@@ -193,6 +198,9 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
193198
id={uID.current}
194199
ref={forkedRef}
195200
role="tooltip"
201+
style={{
202+
display: 'none',
203+
}}
196204
{...rest}
197205
>
198206
<div className="popover-arrow"></div>

packages/coreui-react/src/components/tooltip/CTooltip.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
144144
}
145145

146146
initPopper(togglerRef.current, tooltipRef.current, popperConfig)
147+
tooltipRef.current.style.removeProperty('display')
147148
tooltipRef.current.classList.add('show')
148149
onShow && onShow()
149150
}
@@ -155,6 +156,10 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
155156
tooltipRef.current.classList.remove('show')
156157
onHide && onHide()
157158
executeAfterTransition(() => {
159+
if (tooltipRef.current) {
160+
tooltipRef.current.style.display = 'none'
161+
}
162+
158163
destroyPopper()
159164
setMounted(false)
160165
}, tooltipRef.current)
@@ -192,6 +197,9 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
192197
id={uID.current}
193198
ref={forkedRef}
194199
role="tooltip"
200+
style={{
201+
display: 'none',
202+
}}
195203
{...rest}
196204
>
197205
<div className="tooltip-arrow"></div>

0 commit comments

Comments
 (0)