feat: update settings handler to use savePartialSettings

- Change parameter type from SettingsData to Partial<SettingsData>
- Call savePartialSettings() instead of saveAllSettings()
- Return detailed error messages from savePartialSettings
- Add logging for sections being saved

This change enables partial settings save functionality, allowing
the UI to save only specific settings sections without requiring
the complete settings object.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Misaka_Company
2026-03-03 14:57:06 +08:00
parent f3be0ad01d
commit a967050058

View File

@@ -78,25 +78,38 @@ export function registerSettingsHandlers(): void {
}) })
/** /**
* Save settings * Save settings (updated to use partial save)
*/ */
ipcMain.handle( ipcMain.handle(
'settings:saveSettings', 'settings:saveSettings',
async (_event, settings: SettingsData): Promise<SaveSettingsResult> => { async (_event, settings: Partial<SettingsData>): Promise<SaveSettingsResult> => {
try { try {
log.info('Saving settings') log.info('Saving settings', {
const success = await configManager.saveAllSettings(settings) sections: Object.keys(settings)
if (success) { })
// Use partial save method
const result = await configManager.savePartialSettings(settings)
if (result.success) {
log.info('Settings saved successfully') log.info('Settings saved successfully')
return { success: true } return { success: true }
} else { } else {
log.warn('Failed to save settings') log.warn('Failed to save settings', {
return { success: false, error: '保存设置失败' } error: result.error
})
return {
success: false,
error: result.error || '保存设置失败'
}
} }
} catch (error) { } catch (error) {
const message = error instanceof Error ? error.message : 'Unknown error' const message = error instanceof Error ? error.message : 'Unknown error'
log.error('Error saving settings', { error: message }) log.error('Error saving settings', { error: message })
return { success: false, error: `保存设置失败:${message}` } return {
success: false,
error: `保存设置失败:${message}`
}
} }
} }
) )