43 lines
1.0 KiB
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} |