Add stream output toggle in InterfaceSettings
This commit is contained in:
@@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react'
|
|||||||
import { colorSchemes, applyColorScheme } from './colorSchemes'
|
import { colorSchemes, applyColorScheme } from './colorSchemes'
|
||||||
|
|
||||||
const COLOR_SCHEME_KEY = 'colorScheme'
|
const COLOR_SCHEME_KEY = 'colorScheme'
|
||||||
|
const STREAM_KEY = 'streamOutput'
|
||||||
const UI_SCALE_KEY = 'uiScale'
|
const UI_SCALE_KEY = 'uiScale'
|
||||||
const OPEN_DEVTOOLS_ON_STARTUP_KEY = 'openDevToolsOnStartup'
|
const OPEN_DEVTOOLS_ON_STARTUP_KEY = 'openDevToolsOnStartup'
|
||||||
const DEFAULT_UI_SCALE = 1
|
const DEFAULT_UI_SCALE = 1
|
||||||
@@ -18,7 +19,10 @@ function normalizeUiScale(value) {
|
|||||||
return Math.min(MAX_UI_SCALE, Math.max(MIN_UI_SCALE, Math.round(numericValue * 100) / 100))
|
return Math.min(MAX_UI_SCALE, Math.max(MIN_UI_SCALE, Math.round(numericValue * 100) / 100))
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function InterfaceSettings() {
|
export default function InterfaceSettings({
|
||||||
|
streamOutput = false,
|
||||||
|
onStreamOutputChange,
|
||||||
|
}) {
|
||||||
const [selectedColorScheme, setSelectedColorScheme] = useState('Default')
|
const [selectedColorScheme, setSelectedColorScheme] = useState('Default')
|
||||||
const [uiScale, setUiScale] = useState(DEFAULT_UI_SCALE)
|
const [uiScale, setUiScale] = useState(DEFAULT_UI_SCALE)
|
||||||
const [openDevToolsOnStartup, setOpenDevToolsOnStartup] = useState(false)
|
const [openDevToolsOnStartup, setOpenDevToolsOnStartup] = useState(false)
|
||||||
@@ -63,6 +67,14 @@ export default function InterfaceSettings() {
|
|||||||
window.electronAPI.setSetting(OPEN_DEVTOOLS_ON_STARTUP_KEY, nextValue)
|
window.electronAPI.setSetting(OPEN_DEVTOOLS_ON_STARTUP_KEY, nextValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleStreamOutputToggle = () => {
|
||||||
|
const nextValue = !streamOutput
|
||||||
|
window.electronAPI.setSetting(STREAM_KEY, nextValue)
|
||||||
|
if (onStreamOutputChange) {
|
||||||
|
onStreamOutputChange(nextValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="settings-content-panel">
|
<div className="settings-content-panel">
|
||||||
<div className="setting-section">
|
<div className="setting-section">
|
||||||
@@ -119,6 +131,20 @@ export default function InterfaceSettings() {
|
|||||||
Only applies in Electron development mode. When enabled, Heimgeist opens detached DevTools for new windows and updates currently open windows right away.
|
Only applies in Electron development mode. When enabled, Heimgeist opens detached DevTools for new windows and updates currently open windows right away.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="setting-section">
|
||||||
|
<h3>Stream Output</h3>
|
||||||
|
<label className="toggle-switch">
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={streamOutput}
|
||||||
|
onChange={handleStreamOutputToggle}
|
||||||
|
/>
|
||||||
|
<span className="slider"></span>
|
||||||
|
</label>
|
||||||
|
<p className="setting-description">
|
||||||
|
Shows assistant replies token by token while they are generating instead of waiting for the full message to finish first.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user