forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
| <script lang="ts">
 | |
|     import {OsmConnection} from "../../Logic/Osm/OsmConnection"
 | |
|     import {UIEventSource} from "../../Logic/UIEventSource"
 | |
|     import * as themeOverview from "../../assets/generated/theme_overview.json"
 | |
|     import {Utils} from "../../Utils"
 | |
|     import ThemesList from "./ThemesList.svelte"
 | |
|     import Translations from "../i18n/Translations"
 | |
|     import {LayoutInformation} from "../../Models/ThemeConfig/LayoutConfig"
 | |
|     import LoginToggle from "../Base/LoginToggle.svelte";
 | |
| 
 | |
|     export let search: UIEventSource<string>
 | |
|     export let state: { osmConnection: OsmConnection }
 | |
|     export let onMainScreen: boolean = true
 | |
| 
 | |
|     const prefix = "mapcomplete-hidden-theme-"
 | |
|     const hiddenThemes: LayoutInformation[] = (themeOverview["default"] ?? themeOverview)?.filter(
 | |
|         (layout) => layout.hideFromOverview
 | |
|     ) ?? []
 | |
|     const userPreferences = state.osmConnection.preferencesHandler.preferences
 | |
|     const t = Translations.t.general.morescreen
 | |
| 
 | |
|     let knownThemesId: string[]
 | |
|     $: knownThemesId = Utils.NoNull(
 | |
|         Object.keys($userPreferences)
 | |
|             .filter((key) => key.startsWith(prefix))
 | |
|             .map((key) => key.substring(prefix.length, key.length - "-enabled".length))
 | |
|     )
 | |
|     $: console.log("Known theme ids:", knownThemesId)
 | |
|     $: knownThemes = hiddenThemes.filter((theme) => knownThemesId.includes(theme.id))
 | |
| </script>
 | |
| 
 | |
| <LoginToggle {state}>
 | |
| 
 | |
|     <ThemesList
 | |
|             hideThemes={false}
 | |
|             isCustom={false}
 | |
|             {onMainScreen}
 | |
|             {search}
 | |
|             {state}
 | |
|             themes={knownThemes}
 | |
|     >
 | |
|         <svelte:fragment slot="title">
 | |
|             <h3>{t.previouslyHiddenTitle.toString()}</h3>
 | |
|             <p>
 | |
|                 {t.hiddenExplanation.Subs({
 | |
|                     hidden_discovered: knownThemes.length.toString(),
 | |
|                     total_hidden: hiddenThemes.length.toString(),
 | |
|                 })}
 | |
|             </p>
 | |
|         </svelte:fragment>
 | |
|     </ThemesList>
 | |
| 
 | |
| </LoginToggle>
 |