chore(version): 0.4.6

This commit is contained in:
kangfenmao 2024-08-01 15:36:07 +08:00
parent 23687f119d
commit 681c93f5eb
4 changed files with 96 additions and 82 deletions

View File

@ -60,7 +60,7 @@ jobs:
- name: Release - name: Release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
with: with:
draft: false draft: true
files: | files: |
dist/*.exe dist/*.exe
dist/*.zip dist/*.zip

View File

@ -1,6 +1,6 @@
{ {
"name": "cherry-studio", "name": "cherry-studio",
"version": "0.4.5", "version": "0.4.6",
"description": "A powerful AI assistant for producer.", "description": "A powerful AI assistant for producer.",
"main": "./out/main/index.js", "main": "./out/main/index.js",
"author": "kangfenmao@qq.com", "author": "kangfenmao@qq.com",

View File

@ -17,8 +17,8 @@ import { Message } from '@renderer/types'
import { firstLetter, removeLeadingEmoji } from '@renderer/utils' import { firstLetter, removeLeadingEmoji } from '@renderer/utils'
import { Avatar, Dropdown, Tooltip } from 'antd' import { Avatar, Dropdown, Tooltip } from 'antd'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { isEmpty, upperFirst } from 'lodash' import { upperFirst } from 'lodash'
import { FC, useCallback, useState } from 'react' import { FC, useCallback, useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import styled from 'styled-components' import styled from 'styled-components'
import Markdown from './markdown/Markdown' import Markdown from './markdown/Markdown'
@ -43,14 +43,14 @@ const MessageItem: FC<Props> = ({ message, index, showMenu, onDeleteMessage }) =
const isUserMessage = message.role === 'user' const isUserMessage = message.role === 'user'
const canRegenerate = isLastMessage && message.role === 'assistant' const canRegenerate = isLastMessage && message.role === 'assistant'
const onCopy = () => { const onCopy = useCallback(() => {
navigator.clipboard.writeText(message.content) navigator.clipboard.writeText(message.content)
window.message.success({ content: t('message.copied'), key: 'copy-message' }) window.message.success({ content: t('message.copied'), key: 'copy-message' })
setCopied(true) setCopied(true)
setTimeout(() => setCopied(false), 2000) setTimeout(() => setCopied(false), 2000)
} }, [message.content, t])
const onDelete = async () => { const onDelete = useCallback(async () => {
const confirmed = await window.modal.confirm({ const confirmed = await window.modal.confirm({
icon: null, icon: null,
title: t('message.message.delete.title'), title: t('message.message.delete.title'),
@ -59,23 +59,14 @@ const MessageItem: FC<Props> = ({ message, index, showMenu, onDeleteMessage }) =
okType: 'danger' okType: 'danger'
}) })
confirmed && onDeleteMessage?.(message) confirmed && onDeleteMessage?.(message)
} }, [message, onDeleteMessage, t])
const onEdit = () => { const onEdit = useCallback(() => EventEmitter.emit(EVENT_NAMES.EDIT_MESSAGE, message), [message])
EventEmitter.emit(EVENT_NAMES.EDIT_MESSAGE, message)
}
const onRegenerate = () => { const onRegenerate = useCallback(() => {
onDeleteMessage?.(message) onDeleteMessage?.(message)
setTimeout(() => EventEmitter.emit(EVENT_NAMES.REGENERATE_MESSAGE), 100) setTimeout(() => EventEmitter.emit(EVENT_NAMES.REGENERATE_MESSAGE), 100)
} }, [message, onDeleteMessage])
const getMessageContent = (message: Message) => {
if (isEmpty(message.content) && message.status === 'paused') {
return t('message.chat.completion.paused')
}
return message.content
}
const getUserName = useCallback(() => { const getUserName = useCallback(() => {
if (message.id === 'assistant') { if (message.id === 'assistant') {
@ -111,7 +102,8 @@ const MessageItem: FC<Props> = ({ message, index, showMenu, onDeleteMessage }) =
const messageBorder = showMessageDivider ? undefined : 'none' const messageBorder = showMessageDivider ? undefined : 'none'
return ( return useMemo(
() => (
<MessageContainer key={message.id} className="message" style={{ border: messageBorder }}> <MessageContainer key={message.id} className="message" style={{ border: messageBorder }}>
<MessageHeader> <MessageHeader>
<AvatarWrapper> <AvatarWrapper>
@ -178,6 +170,27 @@ const MessageItem: FC<Props> = ({ message, index, showMenu, onDeleteMessage }) =
)} )}
</MessageContent> </MessageContent>
</MessageContainer> </MessageContainer>
),
[
assistant?.name,
avatar,
canRegenerate,
copied,
fontFamily,
generating,
getDropdownMenus,
getUserName,
isLastMessage,
isUserMessage,
message,
messageBorder,
onCopy,
onDelete,
onEdit,
onRegenerate,
showMenu,
t
]
) )
} }

View File

@ -134,6 +134,7 @@ const TopicListItem = styled.div`
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
font-family: Poppins;
&:hover { &:hover {
background-color: var(--color-background-soft); background-color: var(--color-background-soft);
} }