fix(dashboard): address observability review findings
This commit is contained in:
parent
2d2b905d18
commit
bfb9a91e49
11 changed files with 188 additions and 10 deletions
|
|
@ -43,6 +43,7 @@ export interface DashboardRuntimeInvalid {
|
|||
}
|
||||
|
||||
export interface DashboardRuntimeOptions {
|
||||
refreshSeedDocument?: boolean;
|
||||
seedIfEmpty?: boolean;
|
||||
seedDocument?: DashboardDocument;
|
||||
}
|
||||
|
|
@ -54,8 +55,20 @@ export function loadDashboardRuntime(
|
|||
const dashboardStore = store || createDashboardStore();
|
||||
|
||||
try {
|
||||
const seedDocument = options.seedDocument || dimensionLabDashboardFixture;
|
||||
const active = dashboardStore.getActiveDashboard();
|
||||
if (active) {
|
||||
if (
|
||||
options.refreshSeedDocument &&
|
||||
shouldRefreshSeedDashboard(active, seedDocument)
|
||||
) {
|
||||
const refreshed = dashboardStore.commitDashboard(seedDocument, {
|
||||
actor: "initial-seed",
|
||||
message: "refresh bundled dashboard document",
|
||||
});
|
||||
return readyRuntimeState(refreshed.document, refreshed.id);
|
||||
}
|
||||
|
||||
return readyRuntimeState(active.document, active.currentRevisionId);
|
||||
}
|
||||
|
||||
|
|
@ -69,7 +82,7 @@ export function loadDashboardRuntime(
|
|||
}
|
||||
|
||||
const seeded = dashboardStore.seedDashboardIfEmpty(
|
||||
options.seedDocument || dimensionLabDashboardFixture,
|
||||
seedDocument,
|
||||
{
|
||||
actor: "initial-seed",
|
||||
message: "load initial dashboard document",
|
||||
|
|
@ -113,3 +126,22 @@ function invalidRuntimeState(errors: string[]): DashboardRuntimeInvalid {
|
|||
errors,
|
||||
};
|
||||
}
|
||||
|
||||
function shouldRefreshSeedDashboard(
|
||||
active: { document: DashboardDocument; revision: { actor: string } },
|
||||
seedDocument: DashboardDocument,
|
||||
): boolean {
|
||||
if (active.revision.actor !== "initial-seed") return false;
|
||||
if (!isBundledDimensionLabSeed(active.document, seedDocument)) return false;
|
||||
return JSON.stringify(active.document) !== JSON.stringify(seedDocument);
|
||||
}
|
||||
|
||||
function isBundledDimensionLabSeed(
|
||||
document: DashboardDocument,
|
||||
seedDocument: DashboardDocument,
|
||||
): boolean {
|
||||
return (
|
||||
document.metadata.title === seedDocument.metadata.title &&
|
||||
document.metadata.description === seedDocument.metadata.description
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue