From 01acdeb77763eb1785824691186340445a127e18 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Sun, 15 Sep 2024 10:35:02 +0800 Subject: [PATCH] feat: added vite_main_bundle_id config and improved code cleanliness --- src/main/env.d.ts | 9 +++++++++ src/main/index.ts | 2 +- src/renderer/src/config/env.ts | 1 - .../src/pages/home/Messages/Message.tsx | 19 +++++++++++++++---- 4 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 src/main/env.d.ts diff --git a/src/main/env.d.ts b/src/main/env.d.ts new file mode 100644 index 00000000..fc2e8e74 --- /dev/null +++ b/src/main/env.d.ts @@ -0,0 +1,9 @@ +/// + +interface ImportMetaEnv { + VITE_MAIN_BUNDLE_ID: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/src/main/index.ts b/src/main/index.ts index 5544b39a..2c96ff14 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -12,7 +12,7 @@ app.whenReady().then(async () => { await updateUserDataPath() // Set app user model id for windows - electronApp.setAppUserModelId('com.kangfenmao.CherryStudio') + electronApp.setAppUserModelId(import.meta.env.VITE_MAIN_BUNDLE_ID || 'com.kangfenmao.CherryStudio') // Default open or close DevTools by F12 in development // and ignore CommandOrControl + R in production. diff --git a/src/renderer/src/config/env.ts b/src/renderer/src/config/env.ts index e0b12e66..0e5f9517 100644 --- a/src/renderer/src/config/env.ts +++ b/src/renderer/src/config/env.ts @@ -2,5 +2,4 @@ export { default as UserAvatar } from '@renderer/assets/images/avatar.png' export { default as AppLogo } from '@renderer/assets/images/logo.png' export const APP_NAME = 'Cherry Studio' - export const isLocalAi = false diff --git a/src/renderer/src/pages/home/Messages/Message.tsx b/src/renderer/src/pages/home/Messages/Message.tsx index d6135e06..6d2db26d 100644 --- a/src/renderer/src/pages/home/Messages/Message.tsx +++ b/src/renderer/src/pages/home/Messages/Message.tsx @@ -9,6 +9,7 @@ import { } from '@ant-design/icons' import UserPopup from '@renderer/components/Popups/UserPopup' import { FONT_FAMILY } from '@renderer/config/constant' +import { APP_NAME, AppLogo, isLocalAi } from '@renderer/config/env' import { startMinAppById } from '@renderer/config/minapp' import { getModelLogo } from '@renderer/config/provider' import { useAssistant } from '@renderer/hooks/useAssistant' @@ -71,18 +72,24 @@ const MessageItem: FC = ({ message, index, showMenu, onDeleteMessage }) = ) const getUserName = useCallback(() => { - if (message.id === 'assistant') return assistant?.name + if (isLocalAi && message.role !== 'user') return APP_NAME if (message.role === 'assistant') return upperFirst(model?.name || model?.id) return userName || t('common.you') - }, [assistant?.name, message.id, message.role, model?.id, model?.name, t, userName]) + }, [message.role, model?.id, model?.name, t, userName]) const fontFamily = useMemo(() => { return messageFont === 'serif' ? FONT_FAMILY.replace('sans-serif', 'serif').replace('Ubuntu, ', '') : FONT_FAMILY }, [messageFont]) const messageBorder = showMessageDivider ? undefined : 'none' - const avatarSource = useMemo(() => (message.modelId ? getModelLogo(message.modelId) : undefined), [message.modelId]) + + const avatarSource = useMemo(() => { + if (isLocalAi) return AppLogo + return message.modelId ? getModelLogo(message.modelId) : undefined + }, [message.modelId]) + const avatarName = useMemo(() => firstLetter(assistant?.name).toUpperCase(), [assistant?.name]) + const username = useMemo(() => removeLeadingEmoji(getUserName()), [getUserName]) const dropdownItems = useMemo( @@ -146,7 +153,11 @@ const MessageItem: FC = ({ message, index, showMenu, onDeleteMessage }) = {avatarName}