feat: added vite_main_bundle_id config and improved code cleanliness

This commit is contained in:
kangfenmao 2024-09-15 10:35:02 +08:00
parent a654ccc25e
commit 01acdeb777
4 changed files with 25 additions and 6 deletions

9
src/main/env.d.ts vendored Normal file
View File

@ -0,0 +1,9 @@
/// <reference types="vite/client" />
interface ImportMetaEnv {
VITE_MAIN_BUNDLE_ID: string
}
interface ImportMeta {
readonly env: ImportMetaEnv
}

View File

@ -12,7 +12,7 @@ app.whenReady().then(async () => {
await updateUserDataPath() await updateUserDataPath()
// Set app user model id for windows // 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 // Default open or close DevTools by F12 in development
// and ignore CommandOrControl + R in production. // and ignore CommandOrControl + R in production.

View File

@ -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 { default as AppLogo } from '@renderer/assets/images/logo.png'
export const APP_NAME = 'Cherry Studio' export const APP_NAME = 'Cherry Studio'
export const isLocalAi = false export const isLocalAi = false

View File

@ -9,6 +9,7 @@ import {
} from '@ant-design/icons' } from '@ant-design/icons'
import UserPopup from '@renderer/components/Popups/UserPopup' import UserPopup from '@renderer/components/Popups/UserPopup'
import { FONT_FAMILY } from '@renderer/config/constant' import { FONT_FAMILY } from '@renderer/config/constant'
import { APP_NAME, AppLogo, isLocalAi } from '@renderer/config/env'
import { startMinAppById } from '@renderer/config/minapp' import { startMinAppById } from '@renderer/config/minapp'
import { getModelLogo } from '@renderer/config/provider' import { getModelLogo } from '@renderer/config/provider'
import { useAssistant } from '@renderer/hooks/useAssistant' import { useAssistant } from '@renderer/hooks/useAssistant'
@ -71,18 +72,24 @@ const MessageItem: FC<Props> = ({ message, index, showMenu, onDeleteMessage }) =
) )
const getUserName = useCallback(() => { 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) if (message.role === 'assistant') return upperFirst(model?.name || model?.id)
return userName || t('common.you') 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(() => { const fontFamily = useMemo(() => {
return messageFont === 'serif' ? FONT_FAMILY.replace('sans-serif', 'serif').replace('Ubuntu, ', '') : FONT_FAMILY return messageFont === 'serif' ? FONT_FAMILY.replace('sans-serif', 'serif').replace('Ubuntu, ', '') : FONT_FAMILY
}, [messageFont]) }, [messageFont])
const messageBorder = showMessageDivider ? undefined : 'none' 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 avatarName = useMemo(() => firstLetter(assistant?.name).toUpperCase(), [assistant?.name])
const username = useMemo(() => removeLeadingEmoji(getUserName()), [getUserName]) const username = useMemo(() => removeLeadingEmoji(getUserName()), [getUserName])
const dropdownItems = useMemo( const dropdownItems = useMemo(
@ -146,7 +153,11 @@ const MessageItem: FC<Props> = ({ message, index, showMenu, onDeleteMessage }) =
<Avatar <Avatar
src={avatarSource} src={avatarSource}
size={35} size={35}
style={{ borderRadius: '20%', cursor: 'pointer' }} style={{
borderRadius: '20%',
cursor: 'pointer',
border: isLocalAi ? '1px solid var(--color-border)' : ''
}}
onClick={showMiniApp}> onClick={showMiniApp}>
{avatarName} {avatarName}
</Avatar> </Avatar>