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
uses: softprops/action-gh-release@v2
with:
draft: false
draft: true
files: |
dist/*.exe
dist/*.zip

View File

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

View File

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