import React, { ReactNode } from 'react'; import { ActionIcon, Popover, Button, useMantineColorScheme, } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { Suspense } from 'react'; const Picker = React.lazy(() => import('@emoji-mart/react')); export interface EmojiPickerInterface { onEmojiSelect: (emoji: any) => void; icon: ReactNode; removeEmojiAction: () => void; readOnly: boolean; } function EmojiPicker({ onEmojiSelect, icon, removeEmojiAction, readOnly, }: EmojiPickerInterface) { const [opened, handlers] = useDisclosure(false); const { colorScheme } = useMantineColorScheme(); const handleEmojiSelect = (emoji) => { onEmojiSelect(emoji); handlers.close(); }; const handleRemoveEmoji = () => { removeEmojiAction(); handlers.close(); }; return ( {icon} (await import('@emoji-mart/data')).default} onEmojiSelect={handleEmojiSelect} perLine={8} skinTonePosition="search" theme={colorScheme} /> ); } export default EmojiPicker;