瀏覽代碼

fix: add missed modifications of `<AppIcon />` (#7512)

Hash Brown 8 月之前
父節點
當前提交
60ef7ba855

+ 1 - 1
web/app/components/app-sidebar/basic.tsx

@@ -9,7 +9,7 @@ import { randomString } from '@/utils'
 export type IAppBasicProps = {
   iconType?: 'app' | 'api' | 'dataset' | 'webapp' | 'notion'
   icon?: string
-  icon_background?: string
+  icon_background?: string | null
   name: string
   type: string | React.ReactNode
   hoverTip?: string

+ 3 - 2
web/app/components/app/app-publisher/index.tsx

@@ -24,6 +24,7 @@ import { LeftIndent02 } from '@/app/components/base/icons/src/vender/line/editor
 import { FileText } from '@/app/components/base/icons/src/vender/line/files'
 import WorkflowToolConfigureButton from '@/app/components/tools/workflow-tool/configure-button'
 import type { InputVar } from '@/app/components/workflow/types'
+import { appDefaultIconBackground } from '@/config'
 
 export type AppPublisherProps = {
   disabled?: boolean
@@ -212,8 +213,8 @@ const AppPublisher = ({
                 detailNeedUpdate={!!toolPublished && published}
                 workflowAppId={appDetail?.id}
                 icon={{
-                  content: appDetail?.icon,
-                  background: appDetail?.icon_background,
+                  content: (appDetail.icon_type === 'image' ? '🤖' : appDetail?.icon) || '🤖',
+                  background: (appDetail.icon_type === 'image' ? appDefaultIconBackground : appDetail?.icon_background) || appDefaultIconBackground,
                 }}
                 name={appDetail?.name}
                 description={appDetail?.description}

+ 3 - 0
web/app/components/base/chat/chat-with-history/config-panel/index.tsx

@@ -43,9 +43,12 @@ const ConfigPanel = () => {
               <>
                 <div className='flex items-center h-8 text-2xl font-semibold text-gray-800'>
                   <AppIcon
+                    iconType={appData?.site.icon_type}
                     icon={appData?.site.icon}
                     background='transparent'
+                    imageUrl={appData?.site.icon_url}
                     size='small'
+                    className="mr-2"
                   />
                   {appData?.site.title}
                 </div>

+ 3 - 0
web/app/components/base/chat/embedded-chatbot/config-panel/index.tsx

@@ -48,9 +48,12 @@ const ConfigPanel = () => {
               <>
                 <div className='flex items-center h-8 text-2xl font-semibold text-gray-800'>
                   <AppIcon
+                    iconType={appData?.site.icon_type}
                     icon={appData?.site.icon}
+                    imageUrl={appData?.site.icon_url}
                     background='transparent'
                     size='small'
+                    className="mr-2"
                   />
                   {appData?.site.title}
                 </div>

+ 2 - 0
web/app/components/header/app-nav/index.tsx

@@ -87,8 +87,10 @@ const AppNav = () => {
         })(isCurrentWorkspaceEditor, app)
         return {
           id: app.id,
+          icon_type: app.icon_type,
           icon: app.icon,
           icon_background: app.icon_background,
+          icon_url: app.icon_url,
           name: app.name,
           mode: app.mode,
           link,

+ 4 - 1
web/app/components/header/nav/nav-selector/index.tsx

@@ -16,13 +16,16 @@ import { Route } from '@/app/components/base/icons/src/vender/solid/mapsAndTrave
 import { useAppContext } from '@/context/app-context'
 import { useStore as useAppStore } from '@/app/components/app/store'
 import { FileArrow01, FilePlus01, FilePlus02 } from '@/app/components/base/icons/src/vender/line/files'
+import type { AppIconType } from '@/types/app'
 
 export type NavItem = {
   id: string
   name: string
   link: string
+  icon_type: AppIconType | null
   icon: string
   icon_background: string
+  icon_url: string | null
   mode?: string
 }
 export type INavSelectorProps = {
@@ -82,7 +85,7 @@ const NavSelector = ({ curNav, navs, createText, isApp, onCreate, onLoadmore }:
                         router.push(nav.link)
                       }} title={nav.name}>
                         <div className='relative w-6 h-6 mr-2 rounded-md'>
-                          <AppIcon size='tiny' icon={nav.icon} background={nav.icon_background} />
+                          <AppIcon size='tiny' iconType={nav.icon_type} icon={nav.icon} background={nav.icon_background} imageUrl={nav.icon_url}/>
                           {!!nav.mode && (
                             <span className={cn(
                               'absolute w-3.5 h-3.5 -bottom-0.5 -right-0.5 p-0.5 bg-white rounded border-[0.5px] border-[rgba(0,0,0,0.02)] shadow-sm',

+ 1 - 1
web/app/components/tools/workflow-tool/index.tsx

@@ -133,7 +133,7 @@ const WorkflowToolAsModal: FC<Props> = ({
               <div>
                 <div className='py-2 leading-5 text-sm font-medium text-gray-900'>{t('tools.createTool.name')} <span className='ml-1 text-red-500'>*</span></div>
                 <div className='flex items-center justify-between gap-3'>
-                  <AppIcon size='large' onClick={() => { setShowEmojiPicker(true) }} className='cursor-pointer' icon={emoji.content} background={emoji.background} />
+                  <AppIcon size='large' onClick={() => { setShowEmojiPicker(true) }} className='cursor-pointer' iconType='emoji' icon={emoji.content} background={emoji.background} />
                   <input
                     type='text'
                     className='grow h-10 px-3 text-sm font-normal bg-gray-100 rounded-lg border border-transparent outline-none appearance-none caret-primary-600 placeholder:text-gray-400 hover:bg-gray-50 hover:border hover:border-gray-300 focus:bg-gray-50 focus:border focus:border-gray-300 focus:shadow-xs'

+ 3 - 3
web/models/share.ts

@@ -14,10 +14,10 @@ export type SiteInfo = {
   title: string
   chat_color_theme?: string
   chat_color_theme_inverted?: boolean
-  icon_type?: AppIconType
+  icon_type?: AppIconType | null
   icon?: string
-  icon_background?: string
-  icon_url?: string
+  icon_background?: string | null
+  icon_url?: string | null
   description?: string
   default_language?: Locale
   prompt_public?: boolean