Close sticker picker on Escape keyup
This commit is contained in:
parent
020d78e62b
commit
46b4cf56a3
3 changed files with 34 additions and 0 deletions
|
@ -7,6 +7,7 @@ import { LocalizerType } from '../../types/Util';
|
|||
|
||||
export type OwnProps = {
|
||||
readonly i18n: LocalizerType;
|
||||
readonly onClose: () => unknown;
|
||||
readonly onClickAddPack: () => unknown;
|
||||
readonly onPickSticker: (packId: string, stickerId: number) => unknown;
|
||||
readonly packs: ReadonlyArray<StickerPackType>;
|
||||
|
@ -59,6 +60,7 @@ export const StickerPicker = React.memo(
|
|||
i18n,
|
||||
packs,
|
||||
recentStickers,
|
||||
onClose,
|
||||
onClickAddPack,
|
||||
onPickSticker,
|
||||
showPickerHint,
|
||||
|
@ -96,6 +98,24 @@ export const StickerPicker = React.memo(
|
|||
[setPacksPage]
|
||||
);
|
||||
|
||||
// Handle escape key
|
||||
React.useEffect(
|
||||
() => {
|
||||
const handler = (e: KeyboardEvent) => {
|
||||
if (e.key === 'Escape') {
|
||||
onClose();
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('keyup', handler);
|
||||
|
||||
return () => {
|
||||
document.removeEventListener('keyup', handler);
|
||||
};
|
||||
},
|
||||
[onClose]
|
||||
);
|
||||
|
||||
const isEmpty = stickers.length === 0;
|
||||
const downloadError =
|
||||
selectedPack &&
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue