Files
BarangaySystem/resources/js/stores/syncState.js
2026-06-06 18:43:00 +08:00

33 lines
933 B
JavaScript

// resources/js/stores/syncState.js
import { defineStore } from 'pinia';
import { ref } from 'vue';
export const useSyncStore = defineStore('sync', () => {
const syncStatus = ref({}); // Maps keys to their sync status (e.g. { 'user': 'synced', 'leads': 'stale' })
const lastSynced = ref({}); // Maps keys to their last sync timestamp
const errors = ref({}); // Maps keys to any sync errors
const updateStatus = (key, status) => {
syncStatus.value[key] = status;
if (status === 'synced') {
lastSynced.value[key] = new Date().toISOString();
}
};
const setError = (key, error) => {
errors.value[key] = error;
syncStatus.value[key] = 'failed';
};
const getStatus = (key) => syncStatus.value[key] || 'pending';
return {
syncStatus,
lastSynced,
errors,
updateStatus,
setError,
getStatus
};
});