[emoji-picker-react ๐] ์ด๋ชจํฐ์ฝ ์ ๋ ฅ์ฐฝ์ผ๋ก input ๋ฐ๋๋ฐฉ๋ฒ
์ฑํ ์ ๋ ฅ์ฐฝ์ ์ด๋ชจ์ง ์์ด์ฝ์ ๋๋ฅด๋ฉด, ์ด๋ชจํฐ์ฝ ํค๋ณด๋๊ฐ ๋์ ์ด๋ชจ์ง๋ฅผ ์ ๋ ฅํ ์ ์๊ฒ ๊ตฌํํ๊ณ ์ถ์๋ค.
emoji-picker-react
const [showPicker, setShowPicker] = useState(false);
const [message, setMessage] = useState("");
const onEmojiClick = (event, emojiObject) => {
setMessage((prevMessage) => prevMessage + emojiObject.emoji);
setShowPicker(false);
};
return (
<div className="absolute bottom-4 w-11/12 left-4 ">
<input
className=" bg-bg-lightgray w-full px-4 py-3 outline-none rounded-xl hover:bg-hover-lightgray transition text-gray-400"
placeholder="๋ฉ์์ง๋ฅผ ์
๋ ฅํ์ธ์."
value={message}
onChange={(e) => setMessage(e.target.value)}
></input>
<div className="absolute top-4 right-4 flex items-center gap-x-3">
<FaRegSmile
onClick={() => setShowPicker((prev) => !prev)}
className=" text-custom-gray cursor-pointer text-lg hover:text-gray-600 "
/>
<FileInput />
</div>
{showPicker && (
<EmojiPicker onEmojiClick={onEmojiClick}></EmojiPicker>
)}
</div>
}
๐ ์ฐธ๊ณ
https://codesandbox.io/p/sandbox/emoji-picker-react-js-xpqy1?file=%2Fsrc%2FApp.js%3A11%2C26
์ด๋ชจ์ง ํผ์ปค๋ ์ ๋์ค์ง๋ง ์ด๋ชจ์ง๊ฐ undefined๋ก ์ถ๋ ฅ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๐
์ฝ์์ ํ์ธํด๋ณด๋ emoji๊ฐ์ด ๋๋ฒ์งธ ๊ฐ์ฒด๊ฐ ์๋ event ๊ฐ์ฒด์ ๋ค์ด๊ฐ์์๋ค.
๋ฒ์ ์ ๋ฎ์ถ๋ฉด ํด๊ฒฐ์ด ๋๋ค๋๊ฑธ ๋ณด๋ ๋ฒ์ ์ด ๋ฐ๋๋ฉด์ ๋ณ๊ฒฝ๋์๋๋ณด๋ค...
const onEmojiClick = (event, emojiObject) => {
setMessage((prevMessage) => prevMessage + event.emoji);
setShowPicker(false);
};
npm ๊ณต์๋ฌธ์๋ ๋ถํธํด์ ์ ์๋ณด๊ฒ๋๋๋ฐ
์ค๋์ ๊ตํ โ๏ธ
๊ณต์๋ฌธ์๋ฅผ ์ ํ์ธํ์...
https://www.npmjs.com/package/emoji-picker-react?activeTab=readme
https://stackoverflow.com/questions/74044939/getting-undefined-emoji-in-emoji-picker-react4-3-0