forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
|  | <script lang="ts"> | ||
|  |   import { OsmConnection } from "../../Logic/Osm/OsmConnection" | ||
|  |   import { Store, Stores, UIEventSource } from "../../Logic/UIEventSource" | ||
|  |   import type Loc from "../../Models/Loc" | ||
|  |   import { Utils } from "../../Utils" | ||
|  |   import ThemesList from "./ThemesList.svelte" | ||
|  |   import Translations from "../i18n/Translations" | ||
|  |   import UserRelatedState from "../../Logic/State/UserRelatedState" | ||
|  | 
 | ||
|  |   export let search: UIEventSource<string> | ||
|  |   export let state: UserRelatedState & { | ||
|  |     osmConnection: OsmConnection | ||
|  |     locationControl?: UIEventSource<Loc> | ||
|  |   } | ||
|  |   export let onMainScreen: boolean = true | ||
|  | 
 | ||
|  |   const t = Translations.t.general | ||
|  |   const currentIds: Store<string[]> = state.installedUserThemes | ||
|  |   const stableIds = Stores.ListStabilized<string>(currentIds) | ||
|  |   $: customThemes = Utils.NoNull($stableIds.map((id) => state.GetUnofficialTheme(id))) | ||
|  | </script> | ||
|  | 
 | ||
|  | <ThemesList | ||
|  |   {search} | ||
|  |   {state} | ||
|  |   {onMainScreen} | ||
|  |   themes={customThemes} | ||
|  |   isCustom={true} | ||
|  |   hideThemes={false} | ||
|  | > | ||
|  |   <svelte:fragment slot="title"> | ||
|  |     <!-- TODO: Change string to exclude html --> | ||
|  |     {@html t.customThemeIntro.toString()} | ||
|  |   </svelte:fragment> | ||
|  | </ThemesList> |