| 
                        12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | 
                        - 'use client'
 - import React, { useState } from 'react'
 - import cn from 'classnames'
 - import { useTranslation } from 'react-i18next'
 - import s from './style.module.css'
 - import Modal from '@/app/components/base/modal'
 - import Button from '@/app/components/base/button'
 - import Toast from '@/app/components/base/toast'
 - import AppIcon from '@/app/components/base/app-icon'
 - import EmojiPicker from '@/app/components/base/emoji-picker'
 - 
 - type IProps = {
 -   appName: string
 -   show: boolean
 -   onConfirm: (info: any) => void
 -   onHide: () => void
 - }
 - 
 - const CreateAppModal = ({
 -   appName,
 -   show = false,
 -   onConfirm,
 -   onHide,
 - }: IProps) => {
 -   const { t } = useTranslation()
 - 
 -   const [name, setName] = React.useState('')
 - 
 -   const [showEmojiPicker, setShowEmojiPicker] = useState(false)
 -   const [emoji, setEmoji] = useState({ icon: '🤖', icon_background: '#FFEAD5' })
 - 
 -   const submit = () => {
 -     if (!name.trim()) {
 -       Toast.notify({ type: 'error', message: t('explore.appCustomize.nameRequired') })
 -       return
 -     }
 -     onConfirm({
 -       name,
 -       ...emoji,
 -     })
 -     onHide()
 -   }
 - 
 -   return (
 -     <>
 -       <Modal
 -         isShow={show}
 -         onClose={onHide}
 -         className={cn(s.modal, '!max-w-[480px]', 'px-8')}
 -       >
 -         <span className={s.close} onClick={onHide}/>
 -         <div className={s.title}>{t('explore.appCustomize.title', { name: appName })}</div>
 -         <div className={s.content}>
 -           <div className={s.subTitle}>{t('explore.appCustomize.subTitle')}</div>
 -           <div className='flex items-center justify-between space-x-3'>
 -             <AppIcon size='large' onClick={() => { setShowEmojiPicker(true) }} className='cursor-pointer' icon={emoji.icon} background={emoji.icon_background} />
 -             <input
 -               value={name}
 -               onChange={e => setName(e.target.value)}
 -               className='h-10 px-3 text-sm font-normal bg-gray-100 rounded-lg grow'
 -             />
 -           </div>
 -         </div>
 -         <div className='flex flex-row-reverse'>
 -           <Button className='w-24 ml-2' type='primary' onClick={submit}>{t('common.operation.create')}</Button>
 -           <Button className='w-24' onClick={onHide}>{t('common.operation.cancel')}</Button>
 -         </div>
 -       </Modal>
 -       {showEmojiPicker && <EmojiPicker
 -         onSelect={(icon, icon_background) => {
 -           console.log(icon, icon_background)
 -           setEmoji({ icon, icon_background })
 -           setShowEmojiPicker(false)
 -         }}
 -         onClose={() => {
 -           setEmoji({ icon: '🤖', icon_background: '#FFEAD5' })
 -           setShowEmojiPicker(false)
 -         }}
 -       />}
 -     </>
 - 
 -   )
 - }
 - 
 - export default CreateAppModal
 
 
  |