← Files DataARCHIVED FILE

templates/data-app/base/src/build-state.js

1004 Bytes · Sep 30, 2026 · 23:19 UTC

↓ Download file

/** 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