|
|
|
|
@ -1,9 +1,9 @@
|
|
|
|
|
'use client'
|
|
|
|
|
|
|
|
|
|
import { useCallback, useEffect, useRef, useState } from 'react'
|
|
|
|
|
import { useCallback, useRef, useState } from 'react'
|
|
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
|
|
|
|
|
|
import { useRouter, useSearchParams } from 'next/navigation'
|
|
|
|
|
import { useRouter } from 'next/navigation'
|
|
|
|
|
import { useContext, useContextSelector } from 'use-context-selector'
|
|
|
|
|
import { RiArrowRightLine, RiArrowRightSLine, RiCommandLine, RiCornerDownLeftLine, RiExchange2Fill } from '@remixicon/react'
|
|
|
|
|
import Link from 'next/link'
|
|
|
|
|
@ -19,7 +19,6 @@ import AppsContext, { useAppContext } from '@/context/app-context'
|
|
|
|
|
import { useProviderContext } from '@/context/provider-context'
|
|
|
|
|
import { ToastContext } from '@/app/components/base/toast'
|
|
|
|
|
import type { AppMode } from '@/types/app'
|
|
|
|
|
import { AppModes } from '@/types/app'
|
|
|
|
|
import { createApp } from '@/service/apps'
|
|
|
|
|
import Input from '@/app/components/base/input'
|
|
|
|
|
import Textarea from '@/app/components/base/textarea'
|
|
|
|
|
@ -56,14 +55,6 @@ function CreateApp({ onClose, onSuccess, onCreateFromTemplate }: CreateAppProps)
|
|
|
|
|
|
|
|
|
|
const isCreatingRef = useRef(false)
|
|
|
|
|
|
|
|
|
|
const searchParams = useSearchParams()
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const category = searchParams.get('category')
|
|
|
|
|
if (category && AppModes.includes(category as AppMode))
|
|
|
|
|
setAppMode(category as AppMode)
|
|
|
|
|
}, [searchParams])
|
|
|
|
|
|
|
|
|
|
const onCreate = useCallback(async () => {
|
|
|
|
|
if (!appMode) {
|
|
|
|
|
notify({ type: 'error', message: t('app.newApp.appTypeRequired') })
|
|
|
|
|
@ -128,7 +119,7 @@ function CreateApp({ onClose, onSuccess, onCreateFromTemplate }: CreateAppProps)
|
|
|
|
|
onClick={() => {
|
|
|
|
|
setAppMode('workflow')
|
|
|
|
|
}} />
|
|
|
|
|
<AppTypeCard
|
|
|
|
|
<AppTypeCard
|
|
|
|
|
active={appMode === 'advanced-chat'}
|
|
|
|
|
title={t('app.types.advanced')}
|
|
|
|
|
description={t('app.newApp.advancedShortDescription')}
|
|
|
|
|
|