diff --git a/src/Logic/State/UserRelatedState.ts b/src/Logic/State/UserRelatedState.ts index e496a4067..8ca36200a 100644 --- a/src/Logic/State/UserRelatedState.ts +++ b/src/Logic/State/UserRelatedState.ts @@ -350,10 +350,10 @@ export default class UserRelatedState { * List of all hidden themes that have been seen before * @param osmConnection */ - public static initDiscoveredHiddenThemes(osmConnection: OsmConnection): Store { + public static initDiscoveredHiddenThemes(osmConnection: OsmConnection): Store { const prefix = "mapcomplete-hidden-theme-" const userPreferences = osmConnection.preferencesHandler.allPreferences - return userPreferences.map((preferences) => + return userPreferences.mapD((preferences) => Object.keys(preferences) .filter((key) => key.startsWith(prefix)) .map((key) => key.substring(prefix.length, key.length - "-enabled".length)) diff --git a/src/UI/AllThemesGui.svelte b/src/UI/AllThemesGui.svelte index ae30a0c56..14c38a216 100644 --- a/src/UI/AllThemesGui.svelte +++ b/src/UI/AllThemesGui.svelte @@ -40,7 +40,7 @@ const tu = Translations.t.general const tr = Translations.t.general.morescreen - let userLanguages = osmConnection.userDetails.map((ud) => ud.languages) + let userLanguages = osmConnection.userDetails.map((ud) => ud?.languages ?? []) let search: UIEventSource = new UIEventSource("") let searchStable = search.stabilized(100) @@ -52,12 +52,12 @@ const hiddenThemes: MinimalThemeInformation[] = ThemeSearch.officialThemes.themes.filter( (th) => th.hideFromOverview === true ) - let visitedHiddenThemes: Store = - UserRelatedState.initDiscoveredHiddenThemes(state.osmConnection).map((knownIds) => + let visitedHiddenThemes: Store = + UserRelatedState.initDiscoveredHiddenThemes(state.osmConnection).mapD((knownIds) => hiddenThemes.filter( (theme) => knownIds.indexOf(theme.id) >= 0 || - state.osmConnection.userDetails.data.name === "Pieter Vander Vennet" + state.osmConnection.userDetails?.data?.name === "Pieter Vander Vennet" ) ) @@ -67,6 +67,9 @@ function filtered(themes: Store): Store { return searchStable.map( (search) => { + if (!themes.data) { + return [] + } if (!search) { return themes.data }