Skip to content

Commit

Permalink
Merge pull request #5489 from gooddata/pb-avoid-fetching-dfs-when-loaded
Browse files Browse the repository at this point in the history
feat: lookup labels in map when given instead of fetching
  • Loading branch information
pbenes authored Oct 21, 2024
2 parents cc0cd0b + 4822796 commit fcf478c
Showing 1 changed file with 11 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
ICatalogDateDataset,
isDashboardDateFilterWithDimension,
ObjRef,
isObjRef,
} from "@gooddata/sdk-model";

import { alertsActions } from "../../../store/alerts/index.js";
Expand All @@ -38,7 +39,6 @@ import { ObjRefMap } from "../../../../_staging/metadata/objRefMap.js";
import { ExtendedDashboardWidget } from "../../../types/layoutTypes.js";
import { getPrivateContext } from "../../../store/_infra/contexts.js";
import { loadAvailableDisplayFormRefs } from "./loadAvailableDisplayFormRefs.js";
import { PromiseFnReturnType } from "../../../types/sagas.js";
import { attributeFilterConfigsActions } from "../../../store/attributeFilterConfigs/index.js";
import { dateFilterConfigActions } from "../../../store/dateFilterConfig/index.js";
import { dateFilterConfigsActions } from "../../../store/dateFilterConfigs/index.js";
Expand Down Expand Up @@ -92,6 +92,7 @@ function* sanitizeFilterContext(
ctx: DashboardContext,
filterContext: IDashboard["filterContext"],
dateDataSets: ICatalogDateDataset[] = [],
displayForms?: ObjRefMap<IAttributeDisplayFormMetadataObject>,
): SagaIterator<IDashboard["filterContext"]> {
// we don't need sanitize filter references, if backend guarantees consistent references
if (!ctx.backend.capabilities.allowsInconsistentRelations) {
Expand All @@ -106,11 +107,14 @@ function* sanitizeFilterContext(
.filter(isDashboardAttributeFilter)
.map((f) => f.attributeFilter.displayForm);

const availableRefs: PromiseFnReturnType<typeof loadAvailableDisplayFormRefs> = yield call(
loadAvailableDisplayFormRefs,
ctx,
usedFilterDisplayForms,
);
let availableRefs: ObjRef[];
if (displayForms) {
availableRefs = usedFilterDisplayForms
.map((df) => displayForms.get(df)?.ref ?? null)
.filter(isObjRef);
} else {
availableRefs = yield call(loadAvailableDisplayFormRefs, ctx, usedFilterDisplayForms);
}

return update(
"filters",
Expand Down Expand Up @@ -171,6 +175,7 @@ export function* actionsToInitializeExistingDashboard(
ctx,
dashboard.filterContext,
dateDataSets,
displayForms,
);

const sanitizedDashboard: IDashboard<ExtendedDashboardWidget> = {
Expand Down

0 comments on commit fcf478c

Please sign in to comment.