From 83ddb8e16193862cd1ee858b8d5ea12b8a564dcf Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 17 Feb 2025 18:35:36 +0800 Subject: [PATCH] feat: Add grid mode settings for message display --- src/renderer/src/i18n/locales/en-us.json | 2 ++ src/renderer/src/i18n/locales/ja-jp.json | 2 ++ src/renderer/src/i18n/locales/ru-ru.json | 2 ++ src/renderer/src/i18n/locales/zh-cn.json | 2 ++ src/renderer/src/i18n/locales/zh-tw.json | 2 ++ .../src/pages/home/Messages/MessageGroup.tsx | 36 ++++++++++++++++--- .../src/pages/home/Tabs/SettingsTab.tsx | 31 ---------------- src/renderer/src/store/migrate.ts | 2 ++ 8 files changed, 43 insertions(+), 36 deletions(-) diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index e0cc9e9924..db23fc9ed7 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -641,6 +641,8 @@ "messages.math_engine": "Math engine", "messages.grid_columns": "Message grid display columns", "messages.grid_popover_trigger": "Grid detail trigger", + "messages.grid_popover_trigger.hover": "Hover to display", + "messages.grid_popover_trigger.click": "Click to display", "messages.metrics": "{{time_first_token_millsec}}ms to first token | {{token_speed}} tok/sec", "messages.model.title": "Model Settings", "messages.title": "Message Settings", diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 9bf277902c..8b51990b28 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -641,6 +641,8 @@ "messages.math_engine": "数式エンジン", "messages.grid_columns": "メッセージグリッドの表示列数", "messages.grid_popover_trigger": "グリッド詳細トリガー", + "messages.grid_popover_trigger.hover": "ホバーで表示", + "messages.grid_popover_trigger.click": "クリックで表示", "messages.metrics": "最初のトークンまでの時間 {{time_first_token_millsec}}ms | トークン速度 {{token_speed}} tok/sec", "messages.model.title": "モデル設定", "messages.title": "メッセージ設定", diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index 85e194fd81..fed2c21b81 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -642,6 +642,8 @@ "messages.model.title": "Настройки модели", "messages.grid_columns": "Количество столбцов сетки сообщений", "messages.grid_popover_trigger": "Триггер для отображения подробной информации в сетке", + "messages.grid_popover_trigger.hover": "Наведение для отображения", + "messages.grid_popover_trigger.click": "Нажатие для отображения", "messages.title": "Настройки сообщений", "messages.use_serif_font": "Использовать serif шрифт", "model": "Модель по умолчанию", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 0b1b5a11fa..f8e37451c2 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -641,6 +641,8 @@ "messages.math_engine": "数学公式引擎", "messages.grid_columns": "消息网格展示列数", "messages.grid_popover_trigger": "网格详情触发", + "messages.grid_popover_trigger.hover": "悬停显示", + "messages.grid_popover_trigger.click": "点击显示", "messages.metrics": "首字时延 {{time_first_token_millsec}}ms | 每秒 {{token_speed}} tokens", "messages.model.title": "模型设置", "messages.title": "消息设置", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index 60a55bf5a5..ea5da176f4 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -640,6 +640,8 @@ "messages.math_engine": "Markdown 渲染輸入訊息", "messages.grid_columns": "消息網格展示列數", "messages.grid_popover_trigger": "網格詳情觸發", + "messages.grid_popover_trigger.hover": "懸停顯示", + "messages.grid_popover_trigger.click": "點擊顯示", "messages.metrics": "首字時延 {{time_first_token_millsec}}ms | 每秒 {{token_speed}} tokens", "messages.model.title": "模型設定", "messages.title": "訊息設定", diff --git a/src/renderer/src/pages/home/Messages/MessageGroup.tsx b/src/renderer/src/pages/home/Messages/MessageGroup.tsx index 629185edf9..6404407136 100644 --- a/src/renderer/src/pages/home/Messages/MessageGroup.tsx +++ b/src/renderer/src/pages/home/Messages/MessageGroup.tsx @@ -10,9 +10,10 @@ import { HStack } from '@renderer/components/Layout' import Scrollbar from '@renderer/components/Scrollbar' import { useSettings } from '@renderer/hooks/useSettings' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' -import { MultiModelMessageStyle } from '@renderer/store/settings' +import { useAppDispatch } from '@renderer/store' +import { MultiModelMessageStyle, setGridColumns, setGridPopoverTrigger } from '@renderer/store/settings' import { Message, Model, Topic } from '@renderer/types' -import { Button, Popover, Segmented as AntdSegmented } from 'antd' +import { Button, Popover, Segmented as AntdSegmented, Select, Slider } from 'antd' import { Dispatch, FC, SetStateAction, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' @@ -38,8 +39,10 @@ const MessageGroup: FC = ({ onGetMessages, onDeleteGroupMessages }) => { - const { multiModelMessageStyle: multiModelMessageStyleSetting, gridColumns, gridPopoverTrigger } = useSettings() + const { multiModelMessageStyle: multiModelMessageStyleSetting, gridColumns } = useSettings() const { t } = useTranslation() + const dispatch = useAppDispatch() + const [gridColumnsValue, setGridColumnsValue] = useState(gridColumns) const [multiModelMessageStyle, setMultiModelMessageStyle] = useState(multiModelMessageStyleSetting) @@ -47,6 +50,8 @@ const MessageGroup: FC = ({ const messageLength = messages.length const [selectedIndex, setSelectedIndex] = useState(messageLength - 1) + const { gridPopoverTrigger } = useSettings() + const isGrouped = messageLength > 1 const onDelete = async () => { @@ -193,6 +198,26 @@ const MessageGroup: FC = ({ /> )} + {multiModelMessageStyle === 'grid' && ( + + + setGridColumnsValue(value)} + onChangeComplete={(value) => dispatch(setGridColumns(value))} + min={2} + max={6} + step={1} + /> + + )}