add version
This commit is contained in:
@@ -140,7 +140,10 @@ const hydrateFromBackend = () => hydrateFromBackendHelper({ backend, t, getBacke
|
||||
const scheduleBackendSync = () => scheduleBackendSyncHelper({ getBackendSyncTimer: () => backendSyncTimer, setBackendSyncTimer: (value) => { backendSyncTimer = value; }, syncStateToBackend });
|
||||
const syncStateToBackend = () => syncStateToBackendHelper({ backend, t, getBackendUrl, buildPersistableState, getLocalStateVersion: () => localStateVersion, getSyncedStateVersion: () => syncedStateVersion, setSyncedStateVersion: (value) => { syncedStateVersion = value; }, getLocalStateDirty: () => localStateDirty, setLocalStateDirty: (value) => { localStateDirty = value; } });
|
||||
const pingBackend = () => pingBackendHelper({ backend, t, getBackendUrl });
|
||||
const checkAppVersion = () => checkAppVersionHelper({ getBackendUrl, getBaselineAppVersion: () => baselineAppVersion, setBaselineAppVersion: (value) => { baselineAppVersion = value; }, getPendingAppVersion: () => pendingAppVersion, setPendingAppVersion: (value) => { pendingAppVersion = value; }, getLocalStateDirty: () => localStateDirty });
|
||||
const checkAppVersion = () => checkAppVersionHelper({ onVersion: (version) => {
|
||||
const label = document.getElementById("appVersionLabel");
|
||||
if (label) { label.textContent = `RC RaceCore v${version}`; label.hidden = false; }
|
||||
}, getBackendUrl, getBaselineAppVersion: () => baselineAppVersion, setBaselineAppVersion: (value) => { baselineAppVersion = value; }, getPendingAppVersion: () => pendingAppVersion, setPendingAppVersion: (value) => { pendingAppVersion = value; }, getLocalStateDirty: () => localStateDirty });
|
||||
const startAppVersionPolling = () => startAppVersionPollingHelper({ checkAppVersion, getAppVersionPollTimer: () => appVersionPollTimer, setAppVersionPollTimer: (value) => { appVersionPollTimer = value; } });
|
||||
const startOverlaySync = () => startOverlaySyncHelper({ getOverlaySyncTimer: () => overlaySyncTimer, setOverlaySyncTimer: (value) => { overlaySyncTimer = value; }, getLocalStateDirty: () => localStateDirty, hydrateFromBackend, getCurrentView: () => currentView, renderView });
|
||||
const startOverlayRotation = () => startOverlayRotationHelper({ getOverlayRotationTimer: () => overlayRotationTimer, setOverlayRotationTimer: (value) => { overlayRotationTimer = value; }, getOverlayRotationIndex: () => overlayRotationIndex, setOverlayRotationIndex: (value) => { overlayRotationIndex = value; }, getCurrentView: () => currentView, getOverlayViewMode: () => overlayViewMode, renderView });
|
||||
|
||||
@@ -200,11 +200,12 @@ export async function pingBackendHelper({ backend, t, getBackendUrl }) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkAppVersionHelper({ getBackendUrl, getBaselineAppVersion, setBaselineAppVersion, getPendingAppVersion, setPendingAppVersion, getLocalStateDirty }) {
|
||||
export async function checkAppVersionHelper({ getBackendUrl, getBaselineAppVersion, setBaselineAppVersion, getPendingAppVersion, setPendingAppVersion, getLocalStateDirty, onVersion = () => {} }) {
|
||||
try {
|
||||
const res = await fetch(`${getBackendUrl()}/api/app-version`, { cache: "no-store" });
|
||||
if (!res.ok) return;
|
||||
const payload = await res.json();
|
||||
if (typeof payload.version === "string" && payload.version) onVersion(payload.version);
|
||||
const key = `${payload.revision}:${payload.updatedAt}`;
|
||||
if (!getBaselineAppVersion()) {
|
||||
setBaselineAppVersion(key);
|
||||
|
||||
@@ -203,6 +203,15 @@ body {
|
||||
);
|
||||
}
|
||||
|
||||
.app-version {
|
||||
display: block;
|
||||
margin-top: 8px;
|
||||
font-size: 0.72rem;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.app-version[hidden] { display: none; }
|
||||
|
||||
.sidebar-footer {
|
||||
position: static;
|
||||
margin-top: 14px;
|
||||
|
||||
Reference in New Issue
Block a user