From b844a0700e32d52660bef09bc15d2439cf54e9c2 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 22 Jan 2025 01:24:21 +0100 Subject: [PATCH] Fix: also show default layers when loading an official theme via theme.html --- src/Logic/DetermineTheme.ts | 30 +++++++++++-------- .../ThemeConfig/Conversion/PrepareTheme.ts | 14 ++------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/src/Logic/DetermineTheme.ts b/src/Logic/DetermineTheme.ts index f155b9b51c..5684d731c7 100644 --- a/src/Logic/DetermineTheme.ts +++ b/src/Logic/DetermineTheme.ts @@ -59,6 +59,21 @@ export default class DetermineTheme { return layoutConfig } + private static createConversionContext(): DesugaringContext { + const knownLayersDict = new Map() + for (const key in known_layers["layers"]) { + const layer = known_layers["layers"][key] + knownLayersDict.set(layer.id, layer) + } + const convertState: DesugaringContext = { + tagRenderings: DetermineTheme.getSharedTagRenderings(), + tagRenderingOrder: DetermineTheme.getSharedTagRenderingOrder(), + sharedLayers: knownLayersDict, + publicLayers: new Set() + } + return convertState + } + /** * Gets the correct layout for this website */ @@ -107,7 +122,8 @@ export default class DetermineTheme { "./assets/generated/themes/" + id + ".json", 1000 * 60 * 60 * 60 ) - return new ThemeConfig(config, true) + const withDefault = new PrepareTheme(this.createConversionContext()).convertStrict(config) + return new ThemeConfig(withDefault, true) } private static getSharedTagRenderings(): Map { @@ -163,22 +179,12 @@ export default class DetermineTheme { } } - const knownLayersDict = new Map() - for (const key in known_layers["layers"]) { - const layer = known_layers["layers"][key] - knownLayersDict.set(layer.id, layer) - } - const convertState: DesugaringContext = { - tagRenderings: DetermineTheme.getSharedTagRenderings(), - tagRenderingOrder: DetermineTheme.getSharedTagRenderingOrder(), - sharedLayers: knownLayersDict, - publicLayers: new Set(), - } json = new FixLegacyTheme().convertStrict(json) const raw = json json = new FixImages(DetermineTheme._knownImages).convertStrict(json) json.enableNoteImports = json.enableNoteImports ?? false + const convertState = this.createConversionContext() json = new PrepareTheme(convertState).convertStrict(json) console.log("The layoutconfig is ", json) diff --git a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts index 7428e321b4..037fa2322b 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts @@ -1,14 +1,4 @@ -import { - Concat, - Conversion, - DesugaringContext, - DesugaringStep, - Each, - Fuse, - On, - Pass, - SetDefault, -} from "./Conversion" +import { Concat, Conversion, DesugaringContext, DesugaringStep, Each, Fuse, On, Pass, SetDefault } from "./Conversion" import { ThemeConfigJson } from "../Json/ThemeConfigJson" import { PrepareLayer } from "./PrepareLayer" import { LayerConfigJson } from "../Json/LayerConfigJson" @@ -175,7 +165,7 @@ class SubstituteLayer extends Conversion { +export class AddDefaultLayers extends DesugaringStep { private readonly _state: DesugaringContext constructor(state: DesugaringContext) {