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);
|
||||
if (data === undefined) {
|
||||
return;
|
||||
}
|
||||
resources.setData(data.features);
|
||||
tileToFetch.addCallbackAndRun(async (url) => {
|
||||
const data = await Utils.downloadJsonCached(url, 24 * 60 * 60)
|
||||
if (data === undefined) {
|
||||
return
|
||||
}
|
||||
);
|
||||
|
||||
const filteredResources = resources.map(features => features.filter(f => {
|
||||
return GeoOperations.inside([locationControl.data.lon, locationControl.data.lat], f)
|
||||
}),
|
||||
[locationControl]);
|
||||
|
||||
resources.setData(data.features)
|
||||
})
|
||||
|
||||
const filteredResources = resources.map(
|
||||
(features) =>
|
||||
features.filter((f) => {
|
||||
return GeoOperations.inside([locationControl.data.lon, locationControl.data.lat], f)
|
||||
}),
|
||||
[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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue