auto-git:

[change] src/App.jsx
 [change] src/AssistantMessageContent.jsx
 [change] src/GeneralSettings.jsx
 [change] src/InterfaceSettings.jsx
 [change] src/LibraryManager.jsx
 [change] src/WebsearchSettings.jsx
 [change] src/main.jsx
 [change] src/useChatScroll.js
This commit is contained in:
2026-05-06 04:39:39 +02:00
parent cfbae8378f
commit bb2b929d27
8 changed files with 33 additions and 33 deletions

View File

@@ -687,10 +687,10 @@ export default function App() {
} }
}; };
window.electronAPI.onWindowFocus(handleFocus); desktopApi.onWindowFocus(handleFocus);
return () => { return () => {
window.electronAPI.offWindowFocus(handleFocus); desktopApi.offWindowFocus(handleFocus);
}; };
}, []); }, []);

View File

@@ -65,7 +65,7 @@ export default function AssistantMessageContent({ content, streamOutput, sources
event.preventDefault() event.preventDefault()
try { try {
const parsed = new URL(u) const parsed = new URL(u)
window.electronAPI?.openPath?.(decodeURIComponent(parsed.pathname)) desktopApi?.openPath?.(decodeURIComponent(parsed.pathname))
} catch {} } catch {}
}} }}
> >

View File

@@ -109,8 +109,8 @@ export default function GeneralSettings({
let cancelled = false; let cancelled = false;
Promise.all([ Promise.all([
window.electronAPI.getSettings(), desktopApi.getSettings(),
window.electronAPI.getUpdateStatus(), desktopApi.getUpdateStatus(),
]).then(([settings, status]) => { ]).then(([settings, status]) => {
if (cancelled) { if (cancelled) {
return; return;
@@ -202,13 +202,13 @@ export default function GeneralSettings({
} }
setSelectedModel(nextModel); setSelectedModel(nextModel);
window.electronAPI.setSetting(MODEL_KEY, nextModel); desktopApi.setSetting(MODEL_KEY, nextModel);
if (onModelChange) { if (onModelChange) {
onModelChange(nextModel); onModelChange(nextModel);
} }
if (visionModels.includes(nextModel) && nextModel !== visionModel) { if (visionModels.includes(nextModel) && nextModel !== visionModel) {
setVisionModel(nextModel); setVisionModel(nextModel);
window.electronAPI.setSetting(VISION_MODEL_KEY, nextModel); desktopApi.setSetting(VISION_MODEL_KEY, nextModel);
if (onVisionModelChange) { if (onVisionModelChange) {
onVisionModelChange(nextModel); onVisionModelChange(nextModel);
} }
@@ -232,7 +232,7 @@ export default function GeneralSettings({
} }
setVisionModel(nextModel); setVisionModel(nextModel);
window.electronAPI.setSetting(VISION_MODEL_KEY, nextModel); desktopApi.setSetting(VISION_MODEL_KEY, nextModel);
if (onVisionModelChange) { if (onVisionModelChange) {
onVisionModelChange(nextModel); onVisionModelChange(nextModel);
} }
@@ -251,7 +251,7 @@ export default function GeneralSettings({
const nextModel = embeddingModels[0] || DEFAULT_EMBED_MODEL; const nextModel = embeddingModels[0] || DEFAULT_EMBED_MODEL;
setEmbedModel(nextModel); setEmbedModel(nextModel);
window.electronAPI.setSetting(EMBED_MODEL_KEY, nextModel); desktopApi.setSetting(EMBED_MODEL_KEY, nextModel);
}, [embeddingModels, embedModel, panel, settingsHydrated]); }, [embeddingModels, embedModel, panel, settingsHydrated]);
useEffect(() => { useEffect(() => {
@@ -267,7 +267,7 @@ export default function GeneralSettings({
const nextModel = embedModel || rerankingModels[0] || DEFAULT_EMBED_MODEL; const nextModel = embedModel || rerankingModels[0] || DEFAULT_EMBED_MODEL;
setRerankModel(nextModel); setRerankModel(nextModel);
window.electronAPI.setSetting(RERANK_MODEL_KEY, nextModel); desktopApi.setSetting(RERANK_MODEL_KEY, nextModel);
}, [rerankingModels, rerankModel, embedModel, panel, settingsHydrated]); }, [rerankingModels, rerankModel, embedModel, panel, settingsHydrated]);
useEffect(() => { useEffect(() => {
@@ -283,7 +283,7 @@ export default function GeneralSettings({
const nextModel = whisperModels[0] || DEFAULT_TRANSCRIPTION_MODEL; const nextModel = whisperModels[0] || DEFAULT_TRANSCRIPTION_MODEL;
setTranscriptionModel(nextModel); setTranscriptionModel(nextModel);
window.electronAPI.setSetting(TRANSCRIPTION_MODEL_KEY, nextModel); desktopApi.setSetting(TRANSCRIPTION_MODEL_KEY, nextModel);
if (onTranscriptionModelChange) { if (onTranscriptionModelChange) {
onTranscriptionModelChange(nextModel); onTranscriptionModelChange(nextModel);
} }
@@ -353,13 +353,13 @@ export default function GeneralSettings({
const handleModelChange = (event) => { const handleModelChange = (event) => {
const newModel = event.target.value; const newModel = event.target.value;
setSelectedModel(newModel); setSelectedModel(newModel);
window.electronAPI.setSetting(MODEL_KEY, newModel); desktopApi.setSetting(MODEL_KEY, newModel);
if (onModelChange) { if (onModelChange) {
onModelChange(newModel); onModelChange(newModel);
} }
if (visionModels.includes(newModel) && newModel !== visionModel) { if (visionModels.includes(newModel) && newModel !== visionModel) {
setVisionModel(newModel); setVisionModel(newModel);
window.electronAPI.setSetting(VISION_MODEL_KEY, newModel); desktopApi.setSetting(VISION_MODEL_KEY, newModel);
if (onVisionModelChange) { if (onVisionModelChange) {
onVisionModelChange(newModel); onVisionModelChange(newModel);
} }
@@ -369,7 +369,7 @@ export default function GeneralSettings({
const handleVisionModelChange = (event) => { const handleVisionModelChange = (event) => {
const newModel = event.target.value; const newModel = event.target.value;
setVisionModel(newModel); setVisionModel(newModel);
window.electronAPI.setSetting(VISION_MODEL_KEY, newModel); desktopApi.setSetting(VISION_MODEL_KEY, newModel);
if (onVisionModelChange) { if (onVisionModelChange) {
onVisionModelChange(newModel); onVisionModelChange(newModel);
} }
@@ -378,19 +378,19 @@ export default function GeneralSettings({
const handleEmbedModelChange = (event) => { const handleEmbedModelChange = (event) => {
const nextModel = event.target.value; const nextModel = event.target.value;
setEmbedModel(nextModel); setEmbedModel(nextModel);
window.electronAPI.setSetting(EMBED_MODEL_KEY, nextModel); desktopApi.setSetting(EMBED_MODEL_KEY, nextModel);
}; };
const handleRerankModelChange = (event) => { const handleRerankModelChange = (event) => {
const nextModel = event.target.value; const nextModel = event.target.value;
setRerankModel(nextModel); setRerankModel(nextModel);
window.electronAPI.setSetting(RERANK_MODEL_KEY, nextModel); desktopApi.setSetting(RERANK_MODEL_KEY, nextModel);
}; };
const handleTranscriptionModelChange = (event) => { const handleTranscriptionModelChange = (event) => {
const nextModel = event.target.value; const nextModel = event.target.value;
setTranscriptionModel(nextModel); setTranscriptionModel(nextModel);
window.electronAPI.setSetting(TRANSCRIPTION_MODEL_KEY, nextModel); desktopApi.setSetting(TRANSCRIPTION_MODEL_KEY, nextModel);
if (onTranscriptionModelChange) { if (onTranscriptionModelChange) {
onTranscriptionModelChange(nextModel); onTranscriptionModelChange(nextModel);
} }
@@ -434,7 +434,7 @@ export default function GeneralSettings({
const handleAudioInputDeviceChange = (event) => { const handleAudioInputDeviceChange = (event) => {
const nextDeviceId = event.target.value; const nextDeviceId = event.target.value;
setAudioInputDeviceId(nextDeviceId); setAudioInputDeviceId(nextDeviceId);
window.electronAPI.setSetting(AUDIO_INPUT_DEVICE_ID_KEY, nextDeviceId); desktopApi.setSetting(AUDIO_INPUT_DEVICE_ID_KEY, nextDeviceId);
if (onAudioInputDeviceChange) { if (onAudioInputDeviceChange) {
onAudioInputDeviceChange(nextDeviceId); onAudioInputDeviceChange(nextDeviceId);
} }
@@ -443,7 +443,7 @@ export default function GeneralSettings({
const handleAudioInputLanguageChange = (event) => { const handleAudioInputLanguageChange = (event) => {
const nextLanguage = event.target.value; const nextLanguage = event.target.value;
setAudioInputLanguage(nextLanguage); setAudioInputLanguage(nextLanguage);
window.electronAPI.setSetting(AUDIO_INPUT_LANGUAGE_KEY, nextLanguage); desktopApi.setSetting(AUDIO_INPUT_LANGUAGE_KEY, nextLanguage);
if (onAudioInputLanguageChange) { if (onAudioInputLanguageChange) {
onAudioInputLanguageChange(nextLanguage); onAudioInputLanguageChange(nextLanguage);
} }
@@ -452,7 +452,7 @@ export default function GeneralSettings({
const handleCheckForUpdates = async () => { const handleCheckForUpdates = async () => {
setIsCheckingForUpdates(true); setIsCheckingForUpdates(true);
try { try {
const status = await window.electronAPI.checkForUpdates(); const status = await desktopApi.checkForUpdates();
setUpdateStatus(status || DEFAULT_UPDATE_STATUS); setUpdateStatus(status || DEFAULT_UPDATE_STATUS);
} catch (error) { } catch (error) {
setUpdateStatus({ setUpdateStatus({
@@ -472,7 +472,7 @@ export default function GeneralSettings({
setChangelogError(''); setChangelogError('');
try { try {
const result = await window.electronAPI.getChangelogPage(page); const result = await desktopApi.getChangelogPage(page);
setChangelogEntries(Array.isArray(result?.entries) ? result.entries : []); setChangelogEntries(Array.isArray(result?.entries) ? result.entries : []);
setChangelogPage(Number.isInteger(result?.page) ? result.page : page); setChangelogPage(Number.isInteger(result?.page) ? result.page : page);
setChangelogHasMore(Boolean(result?.hasMore)); setChangelogHasMore(Boolean(result?.hasMore));

View File

@@ -28,7 +28,7 @@ export default function InterfaceSettings({
const [openDevToolsOnStartup, setOpenDevToolsOnStartup] = useState(false) const [openDevToolsOnStartup, setOpenDevToolsOnStartup] = useState(false)
useEffect(() => { useEffect(() => {
window.electronAPI.getSettings().then(settings => { desktopApi.getSettings().then(settings => {
const schemeName = settings.colorScheme || 'Default' const schemeName = settings.colorScheme || 'Default'
setSelectedColorScheme(schemeName) setSelectedColorScheme(schemeName)
setUiScale(normalizeUiScale(settings.uiScale)) setUiScale(normalizeUiScale(settings.uiScale))
@@ -44,13 +44,13 @@ export default function InterfaceSettings({
const handleColorSchemeChange = (event) => { const handleColorSchemeChange = (event) => {
const newScheme = event.target.value const newScheme = event.target.value
setSelectedColorScheme(newScheme) setSelectedColorScheme(newScheme)
window.electronAPI.setSetting(COLOR_SCHEME_KEY, newScheme) desktopApi.setSetting(COLOR_SCHEME_KEY, newScheme)
} }
const persistUiScale = (value) => { const persistUiScale = (value) => {
const nextScale = normalizeUiScale(value) const nextScale = normalizeUiScale(value)
setUiScale(nextScale) setUiScale(nextScale)
window.electronAPI.setSetting(UI_SCALE_KEY, nextScale) desktopApi.setSetting(UI_SCALE_KEY, nextScale)
} }
const handleUiScaleChange = (event) => { const handleUiScaleChange = (event) => {
@@ -64,12 +64,12 @@ export default function InterfaceSettings({
const handleOpenDevToolsOnStartupToggle = () => { const handleOpenDevToolsOnStartupToggle = () => {
const nextValue = !openDevToolsOnStartup const nextValue = !openDevToolsOnStartup
setOpenDevToolsOnStartup(nextValue) setOpenDevToolsOnStartup(nextValue)
window.electronAPI.setSetting(OPEN_DEVTOOLS_ON_STARTUP_KEY, nextValue) desktopApi.setSetting(OPEN_DEVTOOLS_ON_STARTUP_KEY, nextValue)
} }
const handleStreamOutputToggle = () => { const handleStreamOutputToggle = () => {
const nextValue = !streamOutput const nextValue = !streamOutput
window.electronAPI.setSetting(STREAM_KEY, nextValue) desktopApi.setSetting(STREAM_KEY, nextValue)
if (onStreamOutputChange) { if (onStreamOutputChange) {
onStreamOutputChange(nextValue) onStreamOutputChange(nextValue)
} }

View File

@@ -130,7 +130,7 @@ export default function LibraryManager({
async function addPaths() { async function addPaths() {
if (!library) return if (!library) return
const paths = await window.electronAPI?.pickPaths?.() const paths = await desktopApi?.pickPaths?.()
if (!Array.isArray(paths) || paths.length === 0) return if (!Array.isArray(paths) || paths.length === 0) return
try { try {
await registerPaths(paths) await registerPaths(paths)
@@ -307,7 +307,7 @@ export default function LibraryManager({
> >
{file.enrich_enabled ? 'Use Raw Only' : 'Enable Enrich'} {file.enrich_enabled ? 'Use Raw Only' : 'Enable Enrich'}
</button> </button>
<button className="button ghost" onClick={() => window.electronAPI?.openPath?.(file.path)}>Open</button> <button className="button ghost" onClick={() => desktopApi?.openPath?.(file.path)}>Open</button>
<button className="button ghost" disabled={busy || isSyncing} onClick={() => removeFile(file.rel)}>Remove</button> <button className="button ghost" disabled={busy || isSyncing} onClick={() => removeFile(file.rel)}>Remove</button>
</div> </div>
</div> </div>

View File

@@ -24,7 +24,7 @@ export default function WebsearchSettings({
useEffect(() => { useEffect(() => {
let cancelled = false let cancelled = false
window.electronAPI.getSettings().then(settings => { desktopApi.getSettings().then(settings => {
if (cancelled) { if (cancelled) {
return return
} }
@@ -46,7 +46,7 @@ export default function WebsearchSettings({
const handleBackendUrlChange = (event) => { const handleBackendUrlChange = (event) => {
const newUrl = event.target.value const newUrl = event.target.value
setBackendApiUrl(newUrl) setBackendApiUrl(newUrl)
window.electronAPI.setSetting(BACKEND_API_URL_KEY, newUrl) desktopApi.setSetting(BACKEND_API_URL_KEY, newUrl)
if (onBackendApiUrlChange) { if (onBackendApiUrlChange) {
onBackendApiUrlChange(newUrl) onBackendApiUrlChange(newUrl)
} }
@@ -55,7 +55,7 @@ export default function WebsearchSettings({
const handleOllamaUrlChange = (event) => { const handleOllamaUrlChange = (event) => {
const newUrl = event.target.value const newUrl = event.target.value
setOllamaApiUrl(newUrl) setOllamaApiUrl(newUrl)
window.electronAPI.setSetting(OLLAMA_API_URL_KEY, newUrl) desktopApi.setSetting(OLLAMA_API_URL_KEY, newUrl)
} }
return ( return (

View File

@@ -8,7 +8,7 @@ import { applyColorScheme } from './colorSchemes'
function Main() { function Main() {
useEffect(() => { useEffect(() => {
window.electronAPI.getSettings().then(settings => { desktopApi.getSettings().then(settings => {
applyColorScheme(settings.colorScheme || 'Default') applyColorScheme(settings.colorScheme || 'Default')
}) })
}, []) }, [])

View File

@@ -41,7 +41,7 @@ export function useChatScroll({
setScrollPositions(prev => { setScrollPositions(prev => {
const updated = { ...prev, [leavingSessionId]: top } const updated = { ...prev, [leavingSessionId]: top }
window.electronAPI.updateSettings({ scrollPositions: updated }) desktopApi.updateSettings({ scrollPositions: updated })
return updated return updated
}) })
} }