| 
									
										
										
										
											2023-02-03 22:28:11 +01:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +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-06-14 20:39:36 +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-06-14 20:39:36 +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} | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   <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> | 
					
						
							| 
									
										
										
										
											2023-05-22 01:37:02 +02:00
										 |  |  | {/if} |