Files
BarangaySystem/resources/js/composables/useUserSettings.js
2026-06-06 18:43:00 +08:00

45 lines
1.1 KiB
JavaScript

import { ref, onMounted } from 'vue';
import axios from 'axios';
export function useUserSettings() {
const settings = ref({});
const isLoading = ref(false);
const fetchSettings = async () => {
isLoading.value = true;
try {
const response = await axios.post('/UserSettings/Get');
settings.value = response.data || {};
} catch (error) {
console.error('Failed to fetch user settings:', error);
} finally {
isLoading.value = false;
}
};
const updateSetting = async (key, value) => {
settings.value[key] = value;
try {
await axios.post('/UserSettings/Update', { [key]: value });
} catch (error) {
console.error(`Failed to update setting ${key}:`, error);
}
};
const getSetting = (key, defaultValue = null) => {
return settings.value[key] !== undefined ? settings.value[key] : defaultValue;
};
onMounted(() => {
fetchSettings();
});
return {
settings,
isLoading,
fetchSettings,
updateSetting,
getSetting
};
}