Files
aethera/frontend/src/components/settingsManager.ts
2026-01-17 10:09:11 -05:00

30 lines
588 B
TypeScript

import Alpine from 'alpinejs';
import { getSettings, saveSettings } from '../client';
import { Settings } from '../types';
Alpine.data('settingsManager', () => ({
settings: {} as Settings,
loading: false,
saved: false,
error: '',
async init() {
this.settings = await getSettings();
},
async saveSettings() {
this.loading = true;
this.saved = false;
this.error = '';
try {
await saveSettings(this.settings);
this.saved = true;
} catch (err) {
this.error = String(err);
} finally {
this.loading = false;
}
},
}));