about summary refs log tree commit diff
path: root/assets/src/components/share/RequestList.svelte
blob: c092b7f657af1e1c31a838d1b3898081ebfe2114 (plain)
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
<script lang="ts">
    import { derived } from "svelte/store";
    import type { Readable } from "svelte/store";
    import type { IncomingRequest } from "../../models/incoming_request";
    import { getShareState, Sharing } from "../../state/share";
    import Request from "./Request.svelte";
    import EmptyRequests from "./EmptyRequests.svelte";

    const sharing = getShareState().state as Sharing;
    const requestMap = sharing.getRequests();

    function requestSorter(a: IncomingRequest, b: IncomingRequest): number {
        return a.info.receivedAt.getTime() - b.info.receivedAt.getTime();
    }

    const requests: Readable<IncomingRequest[]> = derived(requestMap, $map => {
        return Object.values($map).sort(requestSorter);
    });
</script>

{#each $requests as request (request.info.token)}
    <Request {request} />
{:else}
    <EmptyRequests />
{/each}