chore(version): 0.8.24

This commit is contained in:
kangfenmao 2024-12-10 20:38:06 +08:00
parent 28a27447a5
commit a230ee2c69
6 changed files with 31 additions and 9 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "CherryStudio", "name": "CherryStudio",
"version": "0.8.23", "version": "0.8.24",
"private": true, "private": true,
"description": "A powerful AI assistant for producer.", "description": "A powerful AI assistant for producer.",
"main": "./out/main/index.js", "main": "./out/main/index.js",

View File

@ -173,7 +173,7 @@ body[os='mac'] {
#content-container { #content-container {
border-top-left-radius: 12px; border-top-left-radius: 12px;
border-left: 0.5px solid var(--color-border); border-left: 0.5px solid var(--color-border);
box-shadow: -2px 0px 24px -4px rgba(0, 0, 0, 0.1); box-shadow: -2px 0px 20px -4px rgba(0, 0, 0, 0.08);
} }
} }

View File

@ -13,7 +13,9 @@ export default function useUpdateHandler() {
const removers = [ const removers = [
ipcRenderer.on('update-not-available', () => { ipcRenderer.on('update-not-available', () => {
dispatch(setUpdateState({ checking: false })) dispatch(setUpdateState({ checking: false }))
if (window.location.hash.includes('settings/about')) {
window.message.success(t('settings.about.updateNotAvailable')) window.message.success(t('settings.about.updateNotAvailable'))
}
}), }),
ipcRenderer.on('update-available', (_, releaseInfo: UpdateInfo) => { ipcRenderer.on('update-available', (_, releaseInfo: UpdateInfo) => {
dispatch( dispatch(

View File

@ -77,8 +77,8 @@ const Messages: FC<Props> = ({ assistant, topic, setActiveTopic }) => {
const { updateTopic, addTopic } = useAssistant(assistant.id) const { updateTopic, addTopic } = useAssistant(assistant.id)
const { showTopics, topicPosition, showAssistants, enableTopicNaming } = useSettings() const { showTopics, topicPosition, showAssistants, enableTopicNaming } = useSettings()
const INITIAL_MESSAGES_COUNT = 15 const INITIAL_MESSAGES_COUNT = 20
const LOAD_MORE_COUNT = 15 const LOAD_MORE_COUNT = 20
messagesRef.current = messages messagesRef.current = messages
@ -158,6 +158,7 @@ const Messages: FC<Props> = ({ assistant, topic, setActiveTopic }) => {
EventEmitter.on(EVENT_NAMES.AI_AUTO_RENAME, autoRenameTopic), EventEmitter.on(EVENT_NAMES.AI_AUTO_RENAME, autoRenameTopic),
EventEmitter.on(EVENT_NAMES.CLEAR_MESSAGES, () => { EventEmitter.on(EVENT_NAMES.CLEAR_MESSAGES, () => {
setMessages([]) setMessages([])
setDisplayMessages([])
const defaultTopic = getDefaultTopic(assistant.id) const defaultTopic = getDefaultTopic(assistant.id)
updateTopic({ ...topic, name: defaultTopic.name, messages: [] }) updateTopic({ ...topic, name: defaultTopic.name, messages: [] })
TopicManager.clearTopicMessages(topic.id) TopicManager.clearTopicMessages(topic.id)

View File

@ -10,7 +10,7 @@ import { useSettings } from '@renderer/hooks/useSettings'
import { useAppDispatch } from '@renderer/store' import { useAppDispatch } from '@renderer/store'
import { setUpdateState } from '@renderer/store/runtime' import { setUpdateState } from '@renderer/store/runtime'
import { setManualUpdateCheck } from '@renderer/store/settings' import { setManualUpdateCheck } from '@renderer/store/settings'
import { runAsyncFunction } from '@renderer/utils' import { compareVersions, runAsyncFunction } from '@renderer/utils'
import { Avatar, Button, Progress, Row, Switch, Tag } from 'antd' import { Avatar, Button, Progress, Row, Switch, Tag } from 'antd'
import { debounce } from 'lodash' import { debounce } from 'lodash'
import { FC, useEffect, useState } from 'react' import { FC, useEffect, useState } from 'react'
@ -71,6 +71,8 @@ const AboutSettings: FC = () => {
}) })
} }
const hasNewVersion = update?.info?.version && version ? compareVersions(update.info.version, version) > 0 : false
useEffect(() => { useEffect(() => {
runAsyncFunction(async () => { runAsyncFunction(async () => {
const appInfo = await window.api.getAppInfo() const appInfo = await window.api.getAppInfo()
@ -133,7 +135,7 @@ const AboutSettings: FC = () => {
<Switch value={manualUpdateCheck} onChange={(v) => dispatch(setManualUpdateCheck(v))} /> <Switch value={manualUpdateCheck} onChange={(v) => dispatch(setManualUpdateCheck(v))} />
</SettingRow> </SettingRow>
</SettingGroup> </SettingGroup>
{update.info && ( {hasNewVersion && update.info && (
<SettingGroup theme={theme}> <SettingGroup theme={theme}>
<SettingRow> <SettingRow>
<SettingRowTitle> <SettingRowTitle>
@ -208,7 +210,9 @@ const AboutSettings: FC = () => {
<SettingRowTitle> <SettingRowTitle>
<TwitterOutlined />X <TwitterOutlined />X
</SettingRowTitle> </SettingRowTitle>
<Button onClick={() => onOpenWebsite('https://x.com/kangfenmao')}>@kangfenmao</Button> <Button onClick={() => onOpenWebsite('https://x.com/kangfenmao')}>
{t('settings.about.website.button')}
</Button>
</SettingRow> </SettingRow>
<SettingDivider /> <SettingDivider />
<SettingRow> <SettingRow>
@ -216,7 +220,9 @@ const AboutSettings: FC = () => {
<SendOutlined /> <SendOutlined />
Telegram Telegram
</SettingRowTitle> </SettingRowTitle>
<Button onClick={() => onOpenWebsite('https://t.me/CherryStudioAI')}>@CherryStudioAI</Button> <Button onClick={() => onOpenWebsite('https://t.me/CherryStudioAI')}>
{t('settings.about.website.button')}
</Button>
</SettingRow> </SettingRow>
</SettingGroup> </SettingGroup>
</SettingContainer> </SettingContainer>

View File

@ -363,4 +363,17 @@ export function sortByEnglishFirst(a: string, b: string) {
return a.localeCompare(b) return a.localeCompare(b)
} }
export const compareVersions = (v1: string, v2: string): number => {
const v1Parts = v1.split('.').map(Number)
const v2Parts = v2.split('.').map(Number)
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
const v1Part = v1Parts[i] || 0
const v2Part = v2Parts[i] || 0
if (v1Part > v2Part) return 1
if (v1Part < v2Part) return -1
}
return 0
}
export { classNames } export { classNames }