Fix StickerButton

Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
This commit is contained in:
Scott Nonnenberg 2022-06-08 14:40:08 -07:00
parent f1b05afe62
commit 79c52847cd
3 changed files with 44 additions and 28 deletions

View file

@ -61,7 +61,12 @@ export class MainHeader extends React.Component<PropsType, StateType> {
} }
}; };
public showAvatarPopup = (): void => { public showAvatarPopup = (
event: React.MouseEvent<HTMLButtonElement, MouseEvent>
): void => {
event.preventDefault();
event.stopPropagation();
const popperRoot = document.createElement('div'); const popperRoot = document.createElement('div');
document.body.appendChild(popperRoot); document.body.appendChild(popperRoot);

View file

@ -44,13 +44,18 @@ export const EmojiButton = React.memo(
null null
); );
const handleClickButton = React.useCallback(() => { const handleClickButton = React.useCallback(
(event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
event.preventDefault();
event.stopPropagation();
if (popperRoot) { if (popperRoot) {
setOpen(false); setOpen(false);
} else { } else {
setOpen(true); setOpen(true);
} }
}, [popperRoot, setOpen]); },
[popperRoot, setOpen]
);
const handleClose = React.useCallback(() => { const handleClose = React.useCallback(() => {
setOpen(false); setOpen(false);

View file

@ -67,7 +67,11 @@ export const StickerButton = React.memo(
null null
); );
const handleClickButton = React.useCallback(() => { const handleClickButton = React.useCallback(
(event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
event.preventDefault();
event.stopPropagation();
// Clear tooltip state // Clear tooltip state
clearInstalledStickerPack(); clearInstalledStickerPack();
clearShowIntroduction(); clearShowIntroduction();
@ -80,14 +84,16 @@ export const StickerButton = React.memo(
} else { } else {
setOpen(true); setOpen(true);
} }
}, [ },
[
clearInstalledStickerPack, clearInstalledStickerPack,
clearShowIntroduction, clearShowIntroduction,
installedPacks, installedPacks,
onClickAddPack, onClickAddPack,
popperRoot, popperRoot,
setOpen, setOpen,
]); ]
);
const handlePickSticker = React.useCallback( const handlePickSticker = React.useCallback(
(packId: string, stickerId: number, url: string) => { (packId: string, stickerId: number, url: string) => {