From 6c75553f3fec7642c7bbb75d999781126a344065 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sun, 19 Nov 2023 13:03:46 +0100 Subject: [PATCH] Themes: only add rating-title-icon if 'review_list()' is used in the layer --- .../ThemeConfig/Conversion/PrepareLayer.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts index 6413e87a5c..fd041335c6 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts @@ -26,7 +26,7 @@ import predifined_filters from "../../../../assets/layers/filters/filters.json" import { TagConfigJson } from "../Json/TagConfigJson" import PointRenderingConfigJson, { IconConfigJson } from "../Json/PointRenderingConfigJson" import ValidationUtils from "./ValidationUtils" -import { RenderingSpecification } from "../../../UI/SpecialVisualization" +import { RenderingSpecification, SpecialVisualization } from "../../../UI/SpecialVisualization" import { QuestionableTagRenderingConfigJson } from "../Json/QuestionableTagRenderingConfigJson" import { ConfigMeta } from "../../../UI/Studio/configMeta" import LineRenderingConfigJson from "../Json/LineRenderingConfigJson" @@ -1207,13 +1207,15 @@ export class AddRatingBadge extends DesugaringStep { return json } - const specialVis: RenderingSpecification[] = ValidationUtils.getAllSpecialVisualisations( - json.tagRenderings + const specialVis: Exclude[] = < + Exclude[] + >ValidationUtils.getAllSpecialVisualisations(json.tagRenderings).filter( + (rs) => typeof rs !== "string" ) + const funcs = new Set(specialVis.map((rs) => rs.func.funcName)) - const calledFuncs = new Set(specialVis.map((rs) => rs["func"])) - if (calledFuncs.has("list_reviews")) { - ;(<(string | TagRenderingConfigJson)[]>json.titleIcons).push("ratings") + if (funcs.has("list_reviews")) { + ;(<(string | TagRenderingConfigJson)[]>json.titleIcons).push("icons.rating") } return json } @@ -1244,12 +1246,12 @@ export class PrepareLayer extends Fuse { (layer) => new Each(new PreparePointRendering(state, layer)) ), new SetDefault("titleIcons", ["icons.defaults"]), + new AddRatingBadge(), new On( "titleIcons", (layer) => new Concat(new ExpandTagRendering(state, layer, { noHardcodedStrings: true })) ), - new AddRatingBadge(), new ExpandFilter(state) ) }