| 
									
										
										
										
											2023-02-03 22:28:11 +01:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-05-22 01:37:02 +02:00
										 |  |  |     import {OsmConnection} from "../../Logic/Osm/OsmConnection" | 
					
						
							|  |  |  |     import {Store, Stores, UIEventSource} from "../../Logic/UIEventSource" | 
					
						
							|  |  |  |     import {Utils} from "../../Utils" | 
					
						
							|  |  |  |     import ThemesList from "./ThemesList.svelte" | 
					
						
							|  |  |  |     import Translations from "../i18n/Translations" | 
					
						
							|  |  |  |     import UserRelatedState from "../../Logic/State/UserRelatedState" | 
					
						
							| 
									
										
										
										
											2023-02-03 22:28:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-22 01:37:02 +02:00
										 |  |  |     export let search: UIEventSource<string> | 
					
						
							|  |  |  |     export let state: UserRelatedState & { | 
					
						
							|  |  |  |         osmConnection: OsmConnection | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     export let onMainScreen: boolean = true | 
					
						
							| 
									
										
										
										
											2023-02-03 22:28:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-22 01:37:02 +02:00
										 |  |  |     const t = Translations.t.general | 
					
						
							|  |  |  |     const currentIds: Store<string[]> = state.installedUserThemes | 
					
						
							|  |  |  |     const stableIds = Stores.ListStabilized<string>(currentIds) | 
					
						
							|  |  |  |     let customThemes | 
					
						
							|  |  |  |     $: customThemes = Utils.NoNull($stableIds.map((id) => state.GetUnofficialTheme(id))) | 
					
						
							|  |  |  |     $: console.log("Custom themes are", customThemes) | 
					
						
							| 
									
										
										
										
											2023-02-03 22:28:11 +01:00
										 |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-22 01:37:02 +02:00
										 |  |  | {#if customThemes.length > 0} | 
					
						
							|  |  |  |     <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> | 
					
						
							|  |  |  | {/if} |