about summary refs log tree commit diff
path: root/assets/src/components/share
diff options
context:
space:
mode:
Diffstat (limited to 'assets/src/components/share')
-rw-r--r--assets/src/components/share/DataPicker.svelte16
-rw-r--r--assets/src/components/share/Request.svelte31
-rw-r--r--assets/src/components/share/Requests.svelte20
3 files changed, 67 insertions, 0 deletions
diff --git a/assets/src/components/share/DataPicker.svelte b/assets/src/components/share/DataPicker.svelte
new file mode 100644
index 0000000..6e8dbd4
--- /dev/null
+++ b/assets/src/components/share/DataPicker.svelte
@@ -0,0 +1,16 @@
+<script lang="ts">
+    import data from "../../stores/data";
+
+    let value = "";
+
+    const submit = () => {
+        data.set(value);
+    };
+
+    // TODO: Accept data other than text.
+</script>
+
+<form on:submit|preventDefault={submit}>
+    <input type="text" bind:value />
+    <input type="submit" value="Submit" />
+</form>
diff --git a/assets/src/components/share/Request.svelte b/assets/src/components/share/Request.svelte
new file mode 100644
index 0000000..26002ae
--- /dev/null
+++ b/assets/src/components/share/Request.svelte
@@ -0,0 +1,31 @@
+<script lang="ts">
+    import { offer } from "../../network/transfer/transfer";
+
+    export let token: string;
+
+    async function accept() {
+        const transfer = await offer(token);
+    }
+
+    function decline() {}
+</script>
+
+<div class="container">
+    <span>{token}</span>
+    <div class="buttons">
+        <button on:click={accept}>Accept</button>
+        <button on:click={decline}>X</button>
+    </div>
+</div>
+
+<style>
+    .container {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+    }
+
+    .buttons {
+        display: flex;
+    }
+</style>
diff --git a/assets/src/components/share/Requests.svelte b/assets/src/components/share/Requests.svelte
new file mode 100644
index 0000000..509d7be
--- /dev/null
+++ b/assets/src/components/share/Requests.svelte
@@ -0,0 +1,20 @@
+<script lang="ts">
+    import { getOwnToken, start, Type } from "../../network/channel/connection";
+
+    import requests from "../../stores/requests";
+    import Request from "./Request.svelte";
+
+    const startPromise = start(Type.SHARE);
+
+    // TODO: Switch to store-based state updates.
+</script>
+
+{#await startPromise}
+    <h3>Fetching token...</h3>
+{:then}
+    <h3>Your token is <b>{getOwnToken()}</b>.</h3>
+
+    {#each $requests as request}
+        <Request token={request} />
+    {/each}
+{/await}