forked from MapComplete/MapComplete
		
	Fix typescript warnings
This commit is contained in:
		
							parent
							
								
									b1b4e6acba
								
							
						
					
					
						commit
						8743fa6192
					
				
					 2 changed files with 55 additions and 48 deletions
				
			
		|  | @ -1,44 +1,45 @@ | |||
| <script lang="ts"> | ||||
|   import { Store, UIEventSource } from "../../Logic/UIEventSource"; | ||||
|   import { Tiles } from "../../Models/TileRange"; | ||||
|   import { Utils } from "../../Utils"; | ||||
|   import global_community from "../../assets/community_index_global_resources.json"; | ||||
|   import ContactLink from "./ContactLink.svelte"; | ||||
|   import { GeoOperations } from "../../Logic/GeoOperations"; | ||||
|   import Translations from "../i18n/Translations"; | ||||
|   import ToSvelte from "../Base/ToSvelte.svelte"; | ||||
|   import { ImmutableStore } from "../../Logic/UIEventSource.js"; | ||||
|   import { Store, UIEventSource } from "../../Logic/UIEventSource" | ||||
|   import { Tiles } from "../../Models/TileRange" | ||||
|   import { Utils } from "../../Utils" | ||||
|   import global_community from "../../assets/community_index_global_resources.json" | ||||
|   import ContactLink from "./ContactLink.svelte" | ||||
|   import { GeoOperations } from "../../Logic/GeoOperations" | ||||
|   import Translations from "../i18n/Translations" | ||||
|   import ToSvelte from "../Base/ToSvelte.svelte" | ||||
|   import { Feature, Geometry, GeometryCollection } from "@turf/turf" | ||||
| 
 | ||||
|   export let locationControl: Store<{ lat: number, lon: number }>; | ||||
|   const tileToFetch: Store<string> = locationControl.mapD(l => { | ||||
|     const t = Tiles.embedded_tile(l.lat, l.lon, 6); | ||||
|     return `https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/community_index/tile_${t.z}_${t.x}_${t.y}.geojson`; | ||||
|   }); | ||||
|   export let locationControl: Store<{ lat: number; lon: number }> | ||||
|   const tileToFetch: Store<string> = locationControl.mapD((l) => { | ||||
|     const t = Tiles.embedded_tile(l.lat, l.lon, 6) | ||||
|     return `https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/community_index/tile_${t.z}_${t.x}_${t.y}.geojson` | ||||
|   }) | ||||
|   const t = Translations.t.communityIndex | ||||
|   const resources = new UIEventSource<[]>([]); | ||||
|   const resources = new UIEventSource< | ||||
|     Feature<Geometry | GeometryCollection, { resources; nameEn: string }>[] | ||||
|   >([]) | ||||
| 
 | ||||
|   tileToFetch.addCallbackAndRun(async url => { | ||||
|       const data = await Utils.downloadJsonCached(url, 24 * 60 * 60); | ||||
|   tileToFetch.addCallbackAndRun(async (url) => { | ||||
|     const data = await Utils.downloadJsonCached(url, 24 * 60 * 60) | ||||
|     if (data === undefined) { | ||||
|         return; | ||||
|       return | ||||
|     } | ||||
|       resources.setData(data.features); | ||||
|     } | ||||
|   ); | ||||
|     resources.setData(data.features) | ||||
|   }) | ||||
| 
 | ||||
|   const filteredResources = resources.map(features => features.filter(f => { | ||||
|   const filteredResources = resources.map( | ||||
|     (features) => | ||||
|       features.filter((f) => { | ||||
|         return GeoOperations.inside([locationControl.data.lon, locationControl.data.lat], f) | ||||
|       }), | ||||
|     [locationControl]); | ||||
| 
 | ||||
| 
 | ||||
|     [locationControl] | ||||
|   ) | ||||
| </script> | ||||
| 
 | ||||
| 
 | ||||
| <div> | ||||
|   <ToSvelte construct={t.intro} /> | ||||
|   {#each $filteredResources as feature} | ||||
|     <ContactLink country={feature.properties} /> | ||||
|   {/each} | ||||
|   <ContactLink country={{resources:global_community, nameEn: "Global resources"}} /> | ||||
|   <ContactLink country={{ resources: global_community, nameEn: "Global resources" }} /> | ||||
| </div> | ||||
|  |  | |||
|  | @ -1,20 +1,27 @@ | |||
| <script lang="ts"> | ||||
|   // A contact link indicates how a mapper can contact their local community | ||||
|   // The _properties_ of a community feature | ||||
|   import Locale from "../i18n/Locale.js"; | ||||
|   import Translations from "../i18n/Translations"; | ||||
|   import ToSvelte from "../Base/ToSvelte.svelte"; | ||||
|   import * as native from "../../assets/language_native.json"; | ||||
|   import { TypedTranslation } from "../i18n/Translation"; | ||||
|   import Locale from "../i18n/Locale.js" | ||||
|   import Translations from "../i18n/Translations" | ||||
|   import ToSvelte from "../Base/ToSvelte.svelte" | ||||
|   import * as native from "../../assets/language_native.json" | ||||
|   import { TypedTranslation } from "../i18n/Translation" | ||||
| 
 | ||||
|   const availableTranslationTyped: TypedTranslation<{ native: string }> = Translations.t.communityIndex.available; | ||||
|   const availableTranslation = availableTranslationTyped.OnEveryLanguage((s, ln) => s.replace("{native}", native[ln] ?? ln)); | ||||
|   export let country: { resources; nameEn: string }; | ||||
|   let resources: { id: string, resolved: Record<string, string>, languageCodes: string[] }[] = [] | ||||
|   $: resources = Array.from(Object.values(country?.resources ?? {})); | ||||
|    | ||||
|   const language = Locale.language; | ||||
|   const availableTranslationTyped: TypedTranslation<{ native: string }> = | ||||
|     Translations.t.communityIndex.available | ||||
|   const availableTranslation = availableTranslationTyped.OnEveryLanguage((s, ln) => | ||||
|     s.replace("{native}", native[ln] ?? ln) | ||||
|   ) | ||||
|   export let country: { resources; nameEn: string } | ||||
|   let resources: { | ||||
|     id: string | ||||
|     resolved: Record<string, string> | ||||
|     languageCodes: string[] | ||||
|     type: string | ||||
|   }[] = [] | ||||
|   $: resources = Array.from(Object.values(country?.resources ?? {})) | ||||
| 
 | ||||
|   const language = Locale.language | ||||
| </script> | ||||
| 
 | ||||
| <div> | ||||
|  | @ -34,12 +41,11 @@ | |||
|           {resource.resolved.name ?? resource.resolved.url} | ||||
|         </a> | ||||
|         {resource.resolved?.description} | ||||
|         {#if (resource.languageCodes?.indexOf($language) >= 0)} | ||||
|         {#if resource.languageCodes?.indexOf($language) >= 0} | ||||
|           <span class="border-2 rounded-full border-lime-500 text-sm w-fit px-2"> | ||||
|             <ToSvelte construct={() => availableTranslation.Clone()} /> | ||||
|           </span> | ||||
|         {/if} | ||||
| 
 | ||||
|       </div> | ||||
|     </div> | ||||
|   {/each} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue