|
|
|
@ -18,6 +18,7 @@ import AppIcon from '@/app/components/base/app-icon'
|
|
|
|
import AppsContext from '@/context/app-context'
|
|
|
|
import AppsContext from '@/context/app-context'
|
|
|
|
|
|
|
|
|
|
|
|
import EmojiPicker from '@/app/components/base/emoji-picker'
|
|
|
|
import EmojiPicker from '@/app/components/base/emoji-picker'
|
|
|
|
|
|
|
|
import { set } from 'immer/dist/internal'
|
|
|
|
|
|
|
|
|
|
|
|
type NewAppDialogProps = {
|
|
|
|
type NewAppDialogProps = {
|
|
|
|
show: boolean
|
|
|
|
show: boolean
|
|
|
|
@ -33,7 +34,11 @@ const NewAppDialog = ({ show, onClose }: NewAppDialogProps) => {
|
|
|
|
const [newAppMode, setNewAppMode] = useState<AppMode>()
|
|
|
|
const [newAppMode, setNewAppMode] = useState<AppMode>()
|
|
|
|
const [isWithTemplate, setIsWithTemplate] = useState(false)
|
|
|
|
const [isWithTemplate, setIsWithTemplate] = useState(false)
|
|
|
|
const [selectedTemplateIndex, setSelectedTemplateIndex] = useState<number>(-1)
|
|
|
|
const [selectedTemplateIndex, setSelectedTemplateIndex] = useState<number>(-1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Emoji Picker
|
|
|
|
const [showEmojiPicker, setShowEmojiPicker] = useState(false)
|
|
|
|
const [showEmojiPicker, setShowEmojiPicker] = useState(false)
|
|
|
|
|
|
|
|
const [emoji, setEmoji] = useState({icon: '', icon_background: ''})
|
|
|
|
|
|
|
|
|
|
|
|
const mutateApps = useContextSelector(AppsContext, state => state.mutateApps)
|
|
|
|
const mutateApps = useContextSelector(AppsContext, state => state.mutateApps)
|
|
|
|
|
|
|
|
|
|
|
|
const { data: templates, mutate } = useSWR({ url: '/app-templates' }, fetchAppTemplates)
|
|
|
|
const { data: templates, mutate } = useSWR({ url: '/app-templates' }, fetchAppTemplates)
|
|
|
|
@ -70,6 +75,8 @@ const NewAppDialog = ({ show, onClose }: NewAppDialogProps) => {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
const app = await createApp({
|
|
|
|
const app = await createApp({
|
|
|
|
name,
|
|
|
|
name,
|
|
|
|
|
|
|
|
icon: emoji.icon,
|
|
|
|
|
|
|
|
icon_background: emoji.icon_background,
|
|
|
|
mode: isWithTemplate ? templates.data[selectedTemplateIndex].mode : newAppMode!,
|
|
|
|
mode: isWithTemplate ? templates.data[selectedTemplateIndex].mode : newAppMode!,
|
|
|
|
config: isWithTemplate ? templates.data[selectedTemplateIndex].model_config : undefined,
|
|
|
|
config: isWithTemplate ? templates.data[selectedTemplateIndex].model_config : undefined,
|
|
|
|
})
|
|
|
|
})
|
|
|
|
@ -83,15 +90,19 @@ const NewAppDialog = ({ show, onClose }: NewAppDialogProps) => {
|
|
|
|
notify({ type: 'error', message: t('app.newApp.appCreateFailed') })
|
|
|
|
notify({ type: 'error', message: t('app.newApp.appCreateFailed') })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
isCreatingRef.current = false
|
|
|
|
isCreatingRef.current = false
|
|
|
|
}, [isWithTemplate, newAppMode, notify, router, templates, selectedTemplateIndex])
|
|
|
|
}, [isWithTemplate, newAppMode, notify, router, templates, selectedTemplateIndex, emoji])
|
|
|
|
|
|
|
|
|
|
|
|
return <>
|
|
|
|
return <>
|
|
|
|
{showEmojiPicker && <EmojiPicker
|
|
|
|
{showEmojiPicker && <EmojiPicker
|
|
|
|
onSelect={(emoji, background) => {
|
|
|
|
onSelect={(icon, icon_background) => {
|
|
|
|
console.log(emoji, background)
|
|
|
|
console.log(icon, icon_background)
|
|
|
|
|
|
|
|
setEmoji({icon, icon_background})
|
|
|
|
|
|
|
|
setShowEmojiPicker(false)
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
onClose={() => {
|
|
|
|
|
|
|
|
setEmoji({icon: '', icon_background: ''})
|
|
|
|
setShowEmojiPicker(false)
|
|
|
|
setShowEmojiPicker(false)
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
onClose={() => setShowEmojiPicker(false)}
|
|
|
|
|
|
|
|
/>}
|
|
|
|
/>}
|
|
|
|
<Dialog
|
|
|
|
<Dialog
|
|
|
|
show={show}
|
|
|
|
show={show}
|
|
|
|
|