mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-31 16:49:07 +08:00
feat(Inputbar): add SettingButton component for settings access
This commit is contained in:
parent
b762cfd60b
commit
d11b98dfbb
@ -52,6 +52,7 @@ import InputbarTools, { InputbarToolsRef } from './InputbarTools'
|
|||||||
import KnowledgeBaseInput from './KnowledgeBaseInput'
|
import KnowledgeBaseInput from './KnowledgeBaseInput'
|
||||||
import MentionModelsInput from './MentionModelsInput'
|
import MentionModelsInput from './MentionModelsInput'
|
||||||
import SendMessageButton from './SendMessageButton'
|
import SendMessageButton from './SendMessageButton'
|
||||||
|
import SettingButton from './SettingButton'
|
||||||
import TokenCount from './TokenCount'
|
import TokenCount from './TokenCount'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
@ -856,6 +857,7 @@ const Inputbar: FC<Props> = ({ assistant: _assistant, setActiveTopic, topic }) =
|
|||||||
ToolbarButton={ToolbarButton}
|
ToolbarButton={ToolbarButton}
|
||||||
onClick={onNewContext}
|
onClick={onNewContext}
|
||||||
/>
|
/>
|
||||||
|
<SettingButton assistant={assistant} ToolbarButton={ToolbarButton} />
|
||||||
<TranslateButton text={text} onTranslated={onTranslated} isLoading={isTranslating} />
|
<TranslateButton text={text} onTranslated={onTranslated} isLoading={isTranslating} />
|
||||||
{loading && (
|
{loading && (
|
||||||
<Tooltip placement="top" title={t('chat.input.pause')} arrow>
|
<Tooltip placement="top" title={t('chat.input.pause')} arrow>
|
||||||
|
|||||||
43
src/renderer/src/pages/home/Inputbar/SettingButton.tsx
Normal file
43
src/renderer/src/pages/home/Inputbar/SettingButton.tsx
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { Assistant } from '@renderer/types'
|
||||||
|
import { Popover } from 'antd'
|
||||||
|
import { Settings } from 'lucide-react'
|
||||||
|
import { FC, useState } from 'react'
|
||||||
|
|
||||||
|
import SettingsTab from '../Tabs/SettingsTab'
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
assistant: Assistant
|
||||||
|
ToolbarButton: any
|
||||||
|
}
|
||||||
|
|
||||||
|
const SettingButton: FC<Props> = ({ assistant, ToolbarButton }) => {
|
||||||
|
const [open, setOpen] = useState(false)
|
||||||
|
|
||||||
|
const handleOpenChange = (newOpen: boolean) => {
|
||||||
|
setOpen(newOpen)
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleClose = () => {
|
||||||
|
setOpen(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Popover
|
||||||
|
placement="topLeft"
|
||||||
|
content={<SettingsTab assistant={assistant} onClose={handleClose} />}
|
||||||
|
trigger="click"
|
||||||
|
open={open}
|
||||||
|
onOpenChange={handleOpenChange}
|
||||||
|
styles={{
|
||||||
|
body: {
|
||||||
|
padding: '4px 2px 4px 2px'
|
||||||
|
}
|
||||||
|
}}>
|
||||||
|
<ToolbarButton type="text">
|
||||||
|
<Settings size={18} />
|
||||||
|
</ToolbarButton>
|
||||||
|
</Popover>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SettingButton
|
||||||
@ -69,6 +69,7 @@ import OpenAISettingsGroup from './components/OpenAISettingsGroup'
|
|||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
assistant: Assistant
|
assistant: Assistant
|
||||||
|
onClose: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
const SettingsTab: FC<Props> = (props) => {
|
const SettingsTab: FC<Props> = (props) => {
|
||||||
@ -197,7 +198,10 @@ const SettingsTab: FC<Props> = (props) => {
|
|||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
icon={<Settings2 size={16} />}
|
icon={<Settings2 size={16} />}
|
||||||
onClick={() => AssistantSettingsPopup.show({ assistant, tab: 'model' })}
|
onClick={() => {
|
||||||
|
AssistantSettingsPopup.show({ assistant, tab: 'model' })
|
||||||
|
props.onClose()
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</HStack>
|
</HStack>
|
||||||
}>
|
}>
|
||||||
@ -681,8 +685,10 @@ const SettingsTab: FC<Props> = (props) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const Container = styled(Scrollbar)`
|
const Container = styled(Scrollbar)`
|
||||||
|
min-width: 300px;
|
||||||
|
max-width: 40vw;
|
||||||
|
max-height: 70vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1;
|
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user