page icon emoji picker

This commit is contained in:
Philipinho
2024-01-22 16:39:20 +01:00
parent 616da875cd
commit e05caef8fe
7 changed files with 141 additions and 19 deletions

View File

@ -0,0 +1,39 @@
import React, { ReactNode } from 'react';
import data from '@emoji-mart/data';
import Picker from '@emoji-mart/react';
import { ActionIcon, Popover } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
export interface EmojiPickerInterface {
onEmojiSelect: (emoji: any) => void;
icon: ReactNode;
}
function EmojiPicker({ onEmojiSelect, icon }: EmojiPickerInterface) {
const [opened, handlers] = useDisclosure(false);
const handleEmojiSelect = (emoji) => {
onEmojiSelect(emoji);
handlers.close();
};
return (
<Popover
opened={opened}
onClose={handlers.close}
width={200}
position="bottom"
>
<Popover.Target>
<ActionIcon color="gray" variant="transparent" onClick={handlers.toggle}>
{icon}
</ActionIcon>
</Popover.Target>
<Popover.Dropdown bg="000" style={{ border: "none" }}>
<Picker data={data} onEmojiSelect={handleEmojiSelect} />
</Popover.Dropdown>
</Popover>
);
}
export default EmojiPicker;