From 7d607a93db3621956bc2f6ca84939a6bfa65ef65 Mon Sep 17 00:00:00 2001
From: crazywoola
Date: Fri, 19 May 2023 14:00:32 +0800
Subject: [PATCH] feat: app card icon
---
web/app/(commonLayout)/apps/AppCard.tsx | 2 +-
web/app/(commonLayout)/apps/NewAppDialog.tsx | 19 +++++++++++++++----
web/app/components/base/app-icon/index.tsx | 3 ++-
.../components/base/emoji-picker/index.tsx | 4 ++--
web/service/apps.ts | 4 ++--
5 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/web/app/(commonLayout)/apps/AppCard.tsx b/web/app/(commonLayout)/apps/AppCard.tsx
index eb62cd8899..aec4d6ab6e 100644
--- a/web/app/(commonLayout)/apps/AppCard.tsx
+++ b/web/app/(commonLayout)/apps/AppCard.tsx
@@ -47,7 +47,7 @@ const AppCard = ({
<>
-
+
diff --git a/web/app/(commonLayout)/apps/NewAppDialog.tsx b/web/app/(commonLayout)/apps/NewAppDialog.tsx
index 39f6c519bf..17bde9538d 100644
--- a/web/app/(commonLayout)/apps/NewAppDialog.tsx
+++ b/web/app/(commonLayout)/apps/NewAppDialog.tsx
@@ -18,6 +18,7 @@ import AppIcon from '@/app/components/base/app-icon'
import AppsContext from '@/context/app-context'
import EmojiPicker from '@/app/components/base/emoji-picker'
+import { set } from 'immer/dist/internal'
type NewAppDialogProps = {
show: boolean
@@ -33,7 +34,11 @@ const NewAppDialog = ({ show, onClose }: NewAppDialogProps) => {
const [newAppMode, setNewAppMode] = useState()
const [isWithTemplate, setIsWithTemplate] = useState(false)
const [selectedTemplateIndex, setSelectedTemplateIndex] = useState(-1)
+
+ // Emoji Picker
const [showEmojiPicker, setShowEmojiPicker] = useState(false)
+ const [emoji, setEmoji] = useState({icon: '', icon_background: ''})
+
const mutateApps = useContextSelector(AppsContext, state => state.mutateApps)
const { data: templates, mutate } = useSWR({ url: '/app-templates' }, fetchAppTemplates)
@@ -70,6 +75,8 @@ const NewAppDialog = ({ show, onClose }: NewAppDialogProps) => {
try {
const app = await createApp({
name,
+ icon: emoji.icon,
+ icon_background: emoji.icon_background,
mode: isWithTemplate ? templates.data[selectedTemplateIndex].mode : newAppMode!,
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') })
}
isCreatingRef.current = false
- }, [isWithTemplate, newAppMode, notify, router, templates, selectedTemplateIndex])
+ }, [isWithTemplate, newAppMode, notify, router, templates, selectedTemplateIndex, emoji])
return <>
{showEmojiPicker && {
- console.log(emoji, background)
+ onSelect={(icon, icon_background) => {
+ console.log(icon, icon_background)
+ setEmoji({icon, icon_background})
+ setShowEmojiPicker(false)
+ }}
+ onClose={() => {
+ setEmoji({icon: '', icon_background: ''})
setShowEmojiPicker(false)
}}
- onClose={() => setShowEmojiPicker(false)}
/>}