feat: add prompt display control (#5439)
Co-authored-by: 亢奋猫 <kangfenmao@qq.com>
This commit is contained in:
@@ -1344,6 +1344,7 @@
|
||||
"providerPlaceholder": "Provider name",
|
||||
"advancedSettings": "Advanced Settings"
|
||||
},
|
||||
"messages.prompt": "Show prompt",
|
||||
"messages.divider": "Show divider between messages",
|
||||
"messages.grid_columns": "Message grid display columns",
|
||||
"messages.grid_popover_trigger": "Grid detail trigger",
|
||||
|
||||
@@ -1342,6 +1342,7 @@
|
||||
"providerPlaceholder": "プロバイダー名",
|
||||
"advancedSettings": "詳細設定"
|
||||
},
|
||||
"messages.prompt": "プロンプト表示",
|
||||
"messages.divider": "メッセージ間に区切り線を表示",
|
||||
"messages.grid_columns": "メッセージグリッドの表示列数",
|
||||
"messages.grid_popover_trigger": "グリッド詳細トリガー",
|
||||
|
||||
@@ -1342,6 +1342,7 @@
|
||||
"providerPlaceholder": "Имя провайдера",
|
||||
"advancedSettings": "Расширенные настройки"
|
||||
},
|
||||
"messages.prompt": "Показывать подсказки",
|
||||
"messages.divider": "Показывать разделитель между сообщениями",
|
||||
"messages.grid_columns": "Количество столбцов сетки сообщений",
|
||||
"messages.grid_popover_trigger": "Триггер для отображения подробной информации в сетке",
|
||||
|
||||
@@ -1344,6 +1344,7 @@
|
||||
"providerPlaceholder": "提供者名称",
|
||||
"advancedSettings": "高级设置"
|
||||
},
|
||||
"messages.prompt": "提示词显示",
|
||||
"messages.divider": "消息分割线",
|
||||
"messages.grid_columns": "消息网格展示列数",
|
||||
"messages.grid_popover_trigger": "网格详情触发",
|
||||
|
||||
@@ -1343,6 +1343,7 @@
|
||||
"providerPlaceholder": "提供者名稱",
|
||||
"advancedSettings": "高級設定"
|
||||
},
|
||||
"messages.prompt": "提示詞顯示",
|
||||
"messages.divider": "訊息間顯示分隔線",
|
||||
"messages.grid_columns": "訊息網格展示列數",
|
||||
"messages.grid_popover_trigger": "網格詳細資訊觸發",
|
||||
|
||||
@@ -42,7 +42,7 @@ interface MessagesProps {
|
||||
|
||||
const Messages: React.FC<MessagesProps> = ({ assistant, topic, setActiveTopic }) => {
|
||||
const { t } = useTranslation()
|
||||
const { showTopics, topicPosition, showAssistants, messageNavigation } = useSettings()
|
||||
const { showPrompt, showTopics, topicPosition, showAssistants, messageNavigation } = useSettings()
|
||||
const { updateTopic, addTopic } = useAssistant(assistant.id)
|
||||
const dispatch = useAppDispatch()
|
||||
const containerRef = useRef<HTMLDivElement>(null)
|
||||
@@ -254,7 +254,7 @@ const Messages: React.FC<MessagesProps> = ({ assistant, topic, setActiveTopic })
|
||||
)}
|
||||
</ScrollContainer>
|
||||
</InfiniteScroll>
|
||||
<Prompt assistant={assistant} key={assistant.prompt} topic={topic} />
|
||||
{showPrompt && <Prompt assistant={assistant} key={assistant.prompt} topic={topic} />}
|
||||
</NarrowLayout>
|
||||
{messageNavigation === 'anchor' && <MessageAnchorLine messages={displayMessages} />}
|
||||
{messageNavigation === 'buttons' && <ChatNavigation containerId="messages" />}
|
||||
|
||||
@@ -37,6 +37,7 @@ import {
|
||||
setPasteLongTextThreshold,
|
||||
setRenderInputMessageAsMarkdown,
|
||||
setShowInputEstimatedTokens,
|
||||
setShowPrompt,
|
||||
setShowMessageDivider,
|
||||
setShowTranslateConfirm,
|
||||
setThoughtAutoCollapse
|
||||
@@ -76,6 +77,7 @@ const SettingsTab: FC<Props> = (props) => {
|
||||
const dispatch = useAppDispatch()
|
||||
|
||||
const {
|
||||
showPrompt,
|
||||
showMessageDivider,
|
||||
messageFont,
|
||||
showInputEstimatedTokens,
|
||||
@@ -282,6 +284,11 @@ const SettingsTab: FC<Props> = (props) => {
|
||||
<SettingGroup>
|
||||
<SettingSubtitle style={{ marginTop: 0 }}>{t('settings.messages.title')}</SettingSubtitle>
|
||||
<SettingDivider />
|
||||
<SettingRow>
|
||||
<SettingRowTitleSmall>{t('settings.messages.prompt')}</SettingRowTitleSmall>
|
||||
<Switch size="small" checked={showPrompt} onChange={(checked) => dispatch(setShowPrompt(checked))} />
|
||||
</SettingRow>
|
||||
<SettingDivider />
|
||||
<SettingRow>
|
||||
<SettingRowTitleSmall>{t('settings.messages.divider')}</SettingRowTitleSmall>
|
||||
<Switch
|
||||
|
||||
@@ -46,7 +46,7 @@ const persistedReducer = persistReducer(
|
||||
{
|
||||
key: 'cherry-studio',
|
||||
storage,
|
||||
version: 98,
|
||||
version: 99,
|
||||
blacklist: ['runtime', 'messages', 'messageBlocks'],
|
||||
migrate
|
||||
},
|
||||
|
||||
@@ -1267,11 +1267,15 @@ const migrateConfig = {
|
||||
},
|
||||
'99': (state: RootState) => {
|
||||
try {
|
||||
state.settings.showPrompt = true
|
||||
|
||||
addWebSearchProvider(state, 'bocha')
|
||||
|
||||
updateWebSearchProvider(state, {
|
||||
id: 'exa',
|
||||
apiHost: 'https://api.exa.ai'
|
||||
})
|
||||
|
||||
updateWebSearchProvider(state, {
|
||||
id: 'tavily',
|
||||
apiHost: 'https://api.tavily.com'
|
||||
|
||||
@@ -31,6 +31,7 @@ export interface SettingsState {
|
||||
proxyMode: 'system' | 'custom' | 'none'
|
||||
proxyUrl?: string
|
||||
userName: string
|
||||
showPrompt: boolean
|
||||
showMessageDivider: boolean
|
||||
messageFont: 'system' | 'serif'
|
||||
showInputEstimatedTokens: boolean
|
||||
@@ -143,6 +144,7 @@ export const initialState: SettingsState = {
|
||||
proxyMode: 'system',
|
||||
proxyUrl: undefined,
|
||||
userName: '',
|
||||
showPrompt: true,
|
||||
showMessageDivider: true,
|
||||
messageFont: 'system',
|
||||
showInputEstimatedTokens: false,
|
||||
@@ -272,6 +274,9 @@ const settingsSlice = createSlice({
|
||||
setUserName: (state, action: PayloadAction<string>) => {
|
||||
state.userName = action.payload
|
||||
},
|
||||
setShowPrompt: (state, action: PayloadAction<boolean>) => {
|
||||
state.showPrompt = action.payload
|
||||
},
|
||||
setShowMessageDivider: (state, action: PayloadAction<boolean>) => {
|
||||
state.showMessageDivider = action.payload
|
||||
},
|
||||
@@ -528,6 +533,7 @@ export const {
|
||||
setProxyMode,
|
||||
setProxyUrl,
|
||||
setUserName,
|
||||
setShowPrompt,
|
||||
setShowMessageDivider,
|
||||
setMessageFont,
|
||||
setShowInputEstimatedTokens,
|
||||
|
||||
Reference in New Issue
Block a user