chore: emoji picker disorder
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
// import React from 'react'
|
||||
import { useState, useEffect } from "react";
|
||||
// import { NimblePicker } from "emoji-mart";
|
||||
import "emoji-mart/css/emoji-mart.css";
|
||||
import { Picker } from "emoji-mart";
|
||||
// import data from "emoji-mart/data/";
|
||||
import "emoji-mart/css/emoji-mart.css";
|
||||
import styled from "styled-components";
|
||||
const StyledWrapper = styled.div`
|
||||
filter: drop-shadow(0px 25px 50px rgba(31, 41, 55, 0.25));
|
||||
@@ -19,17 +19,29 @@ const StyledWrapper = styled.div`
|
||||
}
|
||||
`;
|
||||
export default function EmojiPicker({ onSelect, ...rest }) {
|
||||
const [visible, setVisible] = useState(false);
|
||||
useEffect(() => {
|
||||
const inter = setTimeout(() => {
|
||||
setVisible(true);
|
||||
}, 500);
|
||||
return () => {
|
||||
clearTimeout(inter);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<StyledWrapper>
|
||||
<Picker
|
||||
// set="twitter"
|
||||
// data={data}
|
||||
// set="twitter"
|
||||
showPreview={false}
|
||||
showSkinTones={false}
|
||||
onSelect={onSelect}
|
||||
{...rest}
|
||||
/>
|
||||
{visible ? (
|
||||
<Picker
|
||||
// set="twitter"
|
||||
// data={data}
|
||||
// set="twitter"
|
||||
showPreview={false}
|
||||
showSkinTones={false}
|
||||
onSelect={onSelect}
|
||||
{...rest}
|
||||
/>
|
||||
) : null}
|
||||
</StyledWrapper>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { useState } from "react";
|
||||
// import { useState } from "react";
|
||||
import Tippy from "@tippyjs/react";
|
||||
import styled from "styled-components";
|
||||
import Tooltip from "../../component/Tooltip";
|
||||
import { useKey } from "rooks";
|
||||
const StyledBtn = styled.button`
|
||||
outline: none;
|
||||
width: fit-content;
|
||||
@@ -18,38 +17,21 @@ 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 (
|
||||
<Tooltip placement="top" tip="Emojis" disabled={visible}>
|
||||
<Tooltip placement="top" tip="Emojis">
|
||||
<Tippy
|
||||
onClickOutside={toggleVisible}
|
||||
visible={visible}
|
||||
duration={0}
|
||||
delay={[0, 0]}
|
||||
offset={[-18, 25]}
|
||||
interactive
|
||||
placement="top-start"
|
||||
// trigger="click"
|
||||
trigger="click"
|
||||
content={<Picker onSelect={handleSelect} />}
|
||||
>
|
||||
<StyledBtn onClick={toggleVisible}>
|
||||
<StyledBtn>
|
||||
<SmileIcon />
|
||||
</StyledBtn>
|
||||
</Tippy>
|
||||
|
||||
Reference in New Issue
Block a user