matrix-emote/src/routes/rooms/+page.svelte

43 lines
1.0 KiB
Svelte

<script>
import { RoomState } from 'matrix-js-sdk';
import { onMount } from 'svelte'
export let data;
const hs = "https://" + data.homeserver;
const token = data.token;
let isLoading = true;
let error = "";
let rooms = [];
onMount(async () => {
const response = await fetch(hs + "/_matrix/client/v3/joined_rooms", {
method: "GET",
headers: {
"Authorization": "Bearer " + token
}
});
const res = await response.json();
if(response.status != 200) error = "There was an error getting your room list!";
res.joined_rooms.forEach(r => {
rooms.push(r);
});
if(rooms.length == 0) error = "You have not joined any rooms!"
isLoading = false;
});
</script>
{#if error}
<err>{error}</err>
<br>
{:else}
{#if isLoading}
<p>Loading the Rooms...</p>
{:else}
<div class="grid">
{#each rooms as room}
<div><a href="/emotes/{room}">{room}</a></div>
{/each}
</div>
{/if}
{/if}