← Files DataARCHIVED FILE
templates/data-app/base/src/build-state.js
1004 Bytes · Sep 30, 2026 · 23:19 UTC
/** Authoring progress is separate from data freshness and viewer permissions. */
export function dataAppBuildState({ buildStatus, surface } = {}) {
// Older snapshots used in-progress for revisions; retain that read compatibility.
const active = ["creating", "updating", "in-progress"].includes(buildStatus);
const paused = buildStatus === "paused";
const creating = buildStatus === "creating";
const noun = surface === "report" ? "report" : "dashboard";
return {
active,
label: active ? creating ? `Creating ${noun}…` : `Updating ${noun}…` : paused ? `${noun === "report" ? "Report" : "Dashboard"} update paused` : null,
publishBlocked: active || paused,
};
}
export function buildBlocksAction(snapshot, action) {
const state = dataAppBuildState(snapshot);
return state.publishBlocked && ["publish", "sites"].includes(action)
|| state.active && ["refresh", "schedule-refresh", "edit-in-chatgpt", "report-investigate-update", "report-correct"].includes(action);
}
SHA-256: 1fe7e56e5e8173e0da5d432600f385b13d9133cbeb243ef26edd97985babf6d8