From 210d2bf6ad51cf0b80342b1cf438778dd0ac9438 Mon Sep 17 00:00:00 2001 From: Gabriele Messina Date: Wed, 5 Jul 2023 17:12:29 +0200 Subject: [PATCH] Added react wrapper for Emoji element --- packages/emoji-mart-react/react.tsx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/emoji-mart-react/react.tsx b/packages/emoji-mart-react/react.tsx index 978a87d5..422306fc 100644 --- a/packages/emoji-mart-react/react.tsx +++ b/packages/emoji-mart-react/react.tsx @@ -1,6 +1,6 @@ // @ts-nocheck import React, { useEffect, useRef } from 'react' -import { Picker } from 'emoji-mart' +import { Emoji, Picker } from 'emoji-mart' export default function EmojiPicker(props) { const ref = useRef(null) @@ -20,3 +20,22 @@ export default function EmojiPicker(props) { return React.createElement('div', { ref }) } + +export function EmojiElement(props) { + const ref = useRef(null) + const instance = useRef(null) + + if (instance.current) { + instance.current.update(props) + } + + useEffect(() => { + instance.current = new Emoji({ ...props, ref }) + + return () => { + instance.current = null + } + }, []) + + return React.createElement('span', { ref }) +}