owlboard-svelte/src/routes/ldb/+page.svelte

44 lines
1.2 KiB
Svelte
Raw Normal View History

2023-06-13 13:38:59 +01:00
<script>
import Header from '$lib/navigation/header.svelte'
2023-06-15 18:19:23 +01:00
import Nav from '$lib/navigation/nav.svelte'
2023-06-13 13:38:59 +01:00
import {onMount} from 'svelte'
const title = "Public Board"
async function getHeadcode() {
return new URLSearchParams(window.location.search).get('station');
}
2023-06-16 11:59:17 +01:00
let jsonData = {}; // Extract train data from the object to pass to #each
let services = [];
$: {
if (jsonData && jsonData.GetStationBoardResult && jsonData.GetStationBoardResult.trainServices && jsonData.GetStationBoardResult.trainServices.service) {
services = [...jsonData.GetStationBoardResult.trainServices.service];
} else {
services = ["No train services available"];
}
}
2023-06-14 00:43:06 +01:00
2023-06-13 13:38:59 +01:00
onMount(async () => {
2023-06-13 13:58:04 +01:00
const station = await getHeadcode();
document.getElementById('station').textContent = station;
2023-06-14 00:43:06 +01:00
const data = await fetch(`https://owlboard.info/api/v1/ldb/${station}`);
jsonData = await data.json();
2023-06-13 13:38:59 +01:00
})
</script>
2023-06-14 11:02:46 +01:00
<Header {title} />
2023-06-13 13:38:59 +01:00
<p>Station: <span id="station"></span></p>
2023-06-16 11:59:17 +01:00
<p>
{#each services as service}
<span>{service.origin?.location?.locationName || 'Unknown'}</span>
{/each}
</p>
<p>{JSON.stringify(jsonData)}</p>
2023-06-13 13:58:04 +01:00
2023-06-13 13:38:59 +01:00
<Nav />