Skip to content

Commit

Permalink
fix(plasma-core): Add promise resolve for forceUpdate method in `Popu…
Browse files Browse the repository at this point in the history
…p` and `Tooltip` components
  • Loading branch information
Neretin Artem authored and Neretin Artem committed Jun 8, 2023
1 parent d566a89 commit 9e76cb4
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
12 changes: 9 additions & 3 deletions packages/plasma-core/src/components/Popup/Popup.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { memo, useRef, useCallback, useEffect } from 'react';
import React, { memo, useRef, useCallback, useEffect, useLayoutEffect, useState } from 'react';
import type { HTMLAttributes, ReactNode, RefAttributes, SyntheticEvent } from 'react';
import styled from 'styled-components';
import { usePopper } from 'react-popper';
Expand Down Expand Up @@ -158,8 +158,14 @@ export const Popup = memo<PopupProps & RefAttributes<HTMLDivElement>>(
return;
}

forceUpdate();
}, [isOpen]);
/*
* INFO: Метод forceUpdate содержит в себе flushSync и приводит
* к повторному рендеру компонента, который уже находится в процессе рендера.
* Данный хак, нужен для того, чтобы это поведение избежать и перенаправить
* вызов метода в очередь микрозадач.
*/
Promise.resolve().then(forceUpdate);
}, [isOpen, forceUpdate]);

return (
<StyledRoot
Expand Down
10 changes: 8 additions & 2 deletions packages/plasma-hope/src/components/Tooltip/Tooltip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,14 @@ export const Tooltip = forwardRef<HTMLSpanElement, TooltipProps>(
return;
}

forceUpdate();
}, [isVisible]);
/*
* INFO: Метод forceUpdate содержит в себе flushSync и приводит
* к повторному рендеру компонента, который уже находится в процессе рендера.
* Данный хак, нужен для того, чтобы это поведение избежать и перенаправить
* вызов метода в очередь микрозадач.
*/
Promise.resolve().then(forceUpdate);
}, [isVisible, forceUpdate]);

return (
<>
Expand Down

0 comments on commit 9e76cb4

Please sign in to comment.