fix status and roadmap
This commit is contained in:
@@ -158,6 +158,7 @@ export async function hydrateFromBackendHelper({ backend, t, getBackendUrl, appl
|
||||
applyPersistedState(payload.state);
|
||||
saveState({ skipBackend: true });
|
||||
backend.lastSyncAt = payload.updatedAt || new Date().toISOString();
|
||||
backend.lastLoadedAt = new Date().toISOString();
|
||||
}
|
||||
backend.available = true;
|
||||
backend.lastError = "";
|
||||
@@ -173,6 +174,7 @@ export function scheduleBackendSyncHelper({ getBackendSyncTimer, setBackendSyncT
|
||||
}
|
||||
|
||||
export async function syncStateToBackendHelper({ backend, t, getBackendUrl, buildPersistableState, getLocalStateVersion, getSyncedStateVersion, setSyncedStateVersion, setLocalStateDirty }) {
|
||||
backend.pendingWrites = (backend.pendingWrites || 0) + 1;
|
||||
const syncVersion = getLocalStateVersion();
|
||||
try {
|
||||
const res = await fetch(`${getBackendUrl()}/api/state`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(buildPersistableState()) });
|
||||
@@ -180,11 +182,19 @@ export async function syncStateToBackendHelper({ backend, t, getBackendUrl, buil
|
||||
backend.available = true;
|
||||
backend.lastError = "";
|
||||
backend.lastSyncAt = new Date().toISOString();
|
||||
backend.lastSavedAt = backend.lastSyncAt;
|
||||
backend.writeError = "";
|
||||
setSyncedStateVersion(Math.max(getSyncedStateVersion(), syncVersion));
|
||||
if (syncVersion === getLocalStateVersion()) setLocalStateDirty(false);
|
||||
if (syncVersion === getLocalStateVersion()) {
|
||||
setLocalStateDirty(false);
|
||||
backend.passingError = "";
|
||||
}
|
||||
} catch (error) {
|
||||
backend.available = false;
|
||||
backend.lastError = t("error.sync_failed", { msg: error instanceof Error ? error.message : String(error) });
|
||||
backend.writeError = backend.lastError;
|
||||
} finally {
|
||||
backend.pendingWrites = Math.max(0, (backend.pendingWrites || 1) - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,11 +210,12 @@ export async function pingBackendHelper({ backend, t, getBackendUrl }) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkAppVersionHelper({ getBackendUrl, getBaselineAppVersion, setBaselineAppVersion, getPendingAppVersion, setPendingAppVersion, getLocalStateDirty, onVersion = () => {} }) {
|
||||
export async function checkAppVersionHelper({ getBackendUrl, getBaselineAppVersion, setBaselineAppVersion, getPendingAppVersion, setPendingAppVersion, getLocalStateDirty, onVersion = () => {}, onContact = () => {} }) {
|
||||
try {
|
||||
const res = await fetch(`${getBackendUrl()}/api/app-version`, { cache: "no-store" });
|
||||
if (!res.ok) return;
|
||||
if (!res.ok) { onContact(false); return; }
|
||||
const payload = await res.json();
|
||||
onContact(true);
|
||||
if (typeof payload.version === "string" && payload.version) onVersion(payload.version);
|
||||
const key = `${payload.revision}:${payload.updatedAt}`;
|
||||
if (!getBaselineAppVersion()) {
|
||||
@@ -224,7 +235,7 @@ export async function checkAppVersionHelper({ getBackendUrl, getBaselineAppVersi
|
||||
return;
|
||||
}
|
||||
window.location.reload();
|
||||
} catch {}
|
||||
} catch { onContact(false); }
|
||||
}
|
||||
|
||||
export function startAppVersionPollingHelper({ checkAppVersion, getAppVersionPollTimer, setAppVersionPollTimer }) {
|
||||
|
||||
Reference in New Issue
Block a user