'use client' import type { FC } from 'react' import React, { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import s from './style.module.css' import EmojiPickerInner from './Inner' import cn from '@/utils/classnames' import Divider from '@/app/components/base/divider' import Button from '@/app/components/base/button' import Modal from '@/app/components/base/modal' type IEmojiPickerProps = { isModal?: boolean onSelect?: (emoji: string, background: string) => void onClose?: () => void className?: string } const EmojiPicker: FC<IEmojiPickerProps> = ({ isModal = true, onSelect, onClose, className, }) => { const { t } = useTranslation() const [selectedEmoji, setSelectedEmoji] = useState('') const [selectedBackground, setSelectedBackground] = useState<string>() const handleSelectEmoji = useCallback((emoji: string, background: string) => { setSelectedEmoji(emoji) setSelectedBackground(background) }, [setSelectedEmoji, setSelectedBackground]) return isModal ? <Modal onClose={() => { }} isShow closable={false} wrapperClassName={className} className={cn(s.container, '!w-[362px] !p-0')} > <EmojiPickerInner className="pt-3" onSelect={handleSelectEmoji} /> <Divider className='m-0' /> <div className='w-full flex items-center justify-center p-3 gap-2'> <Button className='w-full' onClick={() => { onClose && onClose() }}> {t('app.iconPicker.cancel')} </Button> <Button disabled={selectedEmoji === '' || !selectedBackground} variant="primary" className='w-full' onClick={() => { onSelect && onSelect(selectedEmoji, selectedBackground!) }}> {t('app.iconPicker.ok')} </Button> </div> </Modal> : <></> } export default EmojiPicker