From 764b9b6c94267ec22a6da0167bb61e30a7a264c6 Mon Sep 17 00:00:00 2001 From: zerosoul Date: Wed, 30 Mar 2022 23:17:35 +0800 Subject: [PATCH] refactor: emoji picker UX --- src/common/component/Send/EmojiPicker.js | 28 +++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/common/component/Send/EmojiPicker.js b/src/common/component/Send/EmojiPicker.js index 70104463..19272067 100644 --- a/src/common/component/Send/EmojiPicker.js +++ b/src/common/component/Send/EmojiPicker.js @@ -1,7 +1,10 @@ -// import { useState } from "react"; +import { useState } from "react"; import Tippy from "@tippyjs/react"; import styled from "styled-components"; +import { useKey } from "rooks"; const StyledBtn = styled.button` + outline: none; + width: fit-content; background: none; display: flex; align-items: center; @@ -14,18 +17,37 @@ import Picker from "../EmojiPicker"; import SmileIcon from "../../../assets/icons/emoji.smile.svg"; export default function EmojiPicker({ selectEmoji }) { + const [visible, setVisible] = useState(false); + useKey( + "Escape", + (evt) => { + evt.preventDefault(); + toggleVisible(); + }, + { + // eventTypes: ["keydown"], + // target: editableRef, + when: visible, + } + ); + const toggleVisible = () => { + console.log("toggle picker"); + setVisible((prev) => !prev); + }; const handleSelect = (emoji) => { selectEmoji(emoji.native); }; return ( } > - +