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