aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/routes/+page.svelte
blob: e89df9b37df942441968f12f3bc7ca590b473bd6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<script lang="ts">
    import Button from "$lib/ui/button.svelte";
    import { onMount } from "svelte";
    import { clear_auth_session, get_accounts, get_transactions, init_auth_session, is_ready } from "./sb1.remote";
    import { get_actual_meta } from "./actual.remote";

    let navigating = $state(false);

    async function authorize() {
        navigating = true;
        const url = await init_auth_session();
        location.href = url;
        navigating = false;
    }

    async function logout() {
        await clear_auth_session();
    }

    onMount(async () => {
        await get_actual_meta();
    });
</script>

<main>
    {#if await is_ready()}
        {@const accounts = await get_accounts()}
        {@const actual_meta = await get_actual_meta()}
        {#if accounts}
            {#each accounts?.accounts as account}
                {@const transactions = await get_transactions(account.key)}
                <li>{account.name}</li>
                {#if transactions?.length}
                    <ul>
                        {#each transactions as transaction}
                            <li>{JSON.stringify(transaction)}</li>
                        {/each}
                    </ul>
                {:else}
                    <small>Ingen transaksjoner</small>
                {/if}
            {/each}
        {/if}
        {#if actual_meta}
            <pre>{JSON.stringify(actual_meta, null, 2)}</pre>
        {/if}
        <Button onclick={logout}>Logg ut</Button>
    {:else}
        <Button onclick={authorize} loading={navigating}>Autentisér hos Sparebanken 1</Button>
    {/if}
</main>