| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | '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
 |