feat: Add chat seperator and restore last viewed chat on restart
This commit is contained in:
@@ -9,6 +9,10 @@ import { NgIcon, provideIcons } from '@ng-icons/core';
|
||||
import { lucidePower } from '@ng-icons/lucide';
|
||||
|
||||
import type { DesktopSettingsSnapshot } from '../../../../core/platform/electron/electron-api.models';
|
||||
import {
|
||||
loadGeneralSettingsFromStorage,
|
||||
saveGeneralSettingsToStorage
|
||||
} from '../../../../infrastructure/persistence';
|
||||
import { ElectronBridgeService } from '../../../../core/platform/electron/electron-bridge.service';
|
||||
import { PlatformService } from '../../../../core/platform';
|
||||
|
||||
@@ -28,17 +32,29 @@ export class GeneralSettingsComponent {
|
||||
private electronBridge = inject(ElectronBridgeService);
|
||||
|
||||
readonly isElectron = this.platform.isElectron;
|
||||
reopenLastViewedChat = signal(true);
|
||||
autoStart = signal(false);
|
||||
closeToTray = signal(true);
|
||||
savingAutoStart = signal(false);
|
||||
savingCloseToTray = signal(false);
|
||||
|
||||
constructor() {
|
||||
this.loadGeneralSettings();
|
||||
|
||||
if (this.isElectron) {
|
||||
void this.loadDesktopSettings();
|
||||
}
|
||||
}
|
||||
|
||||
onReopenLastViewedChatChange(event: Event): void {
|
||||
const input = event.target as HTMLInputElement;
|
||||
const settings = saveGeneralSettingsToStorage({
|
||||
reopenLastViewedChat: !!input.checked
|
||||
});
|
||||
|
||||
this.reopenLastViewedChat.set(settings.reopenLastViewedChat);
|
||||
}
|
||||
|
||||
async onAutoStartChange(event: Event): Promise<void> {
|
||||
const input = event.target as HTMLInputElement;
|
||||
const enabled = !!input.checked;
|
||||
@@ -99,6 +115,12 @@ export class GeneralSettingsComponent {
|
||||
} catch {}
|
||||
}
|
||||
|
||||
private loadGeneralSettings(): void {
|
||||
const settings = loadGeneralSettingsFromStorage();
|
||||
|
||||
this.reopenLastViewedChat.set(settings.reopenLastViewedChat);
|
||||
}
|
||||
|
||||
private applyDesktopSettings(snapshot: DesktopSettingsSnapshot): void {
|
||||
this.autoStart.set(snapshot.autoStart);
|
||||
this.closeToTray.set(snapshot.closeToTray);
|
||||
|
||||
Reference in New Issue
Block a user