aboutsummaryrefslogtreecommitdiff
path: root/assets/src/components/share
diff options
context:
space:
mode:
authorMelonai <einebeere@gmail.com>2021-06-17 00:30:58 +0200
committerMelonai <einebeere@gmail.com>2021-06-17 00:30:58 +0200
commitf6f44950e79041e4f7afe441fc4b850e1030f27a (patch)
tree027751b354414260606251c631481f6a4b2c94b9 /assets/src/components/share
parentb98b1cd0e5d07fd37be54592edd362f443a145ad (diff)
downloadrook-f6f44950e79041e4f7afe441fc4b850e1030f27a.tar.zst
rook-f6f44950e79041e4f7afe441fc4b850e1030f27a.zip
Share page design
Diffstat (limited to 'assets/src/components/share')
-rw-r--r--assets/src/components/share/Info.svelte64
-rw-r--r--assets/src/components/share/Request.svelte57
-rw-r--r--assets/src/components/share/Requests.svelte15
-rw-r--r--assets/src/components/share/Selector.svelte (renamed from assets/src/components/share/DataPicker.svelte)4
4 files changed, 128 insertions, 12 deletions
diff --git a/assets/src/components/share/Info.svelte b/assets/src/components/share/Info.svelte
new file mode 100644
index 0000000..2d648ce
--- /dev/null
+++ b/assets/src/components/share/Info.svelte
@@ -0,0 +1,64 @@
+<script lang="ts">
+ import {
+ ConnectionState,
+ getOwnToken,
+ getStateStore,
+ } from "../../network/channel/connection";
+ import data from "../../stores/data";
+ import Selector from "./Selector.svelte";
+
+ let connection = getStateStore();
+</script>
+
+<div class="info">
+ {#if !$data.locked}
+ <h1>What do you want to share?</h1>
+ <Selector />
+ {:else}
+ <h1>
+ You are <br />
+ sharing <b>a text.</b>
+ </h1>
+ {#if $connection === ConnectionState.CONNECTED}
+ <p>
+ Your share is available under: <br />
+ rook.rnrd.eu/<span>{getOwnToken()}</span>
+ </p>
+ <!-- TODO: Display actual data. -->
+ <div class="data">••••••••••••••••••••••••••••••</div>
+ {:else}
+ <p>Connecting to signaling server...</p>
+ {/if}
+ {/if}
+</div>
+
+<style>
+ h1 {
+ font-size: 35px;
+ color: white;
+ font-weight: 400;
+ }
+
+ p {
+ color: #626262;
+ font-size: 16px;
+ margin-bottom: 30px;
+ }
+
+ span {
+ color: white;
+ }
+
+ .info {
+ width: 315px;
+ }
+
+ .data {
+ font-size: 14px;
+ width: 100%;
+ background-color: white;
+ color: black;
+ padding: 10px 20px;
+ box-sizing: border-box;
+ }
+</style>
diff --git a/assets/src/components/share/Request.svelte b/assets/src/components/share/Request.svelte
index 17e8443..e34f633 100644
--- a/assets/src/components/share/Request.svelte
+++ b/assets/src/components/share/Request.svelte
@@ -1,5 +1,7 @@
<script lang="ts">
import { offer } from "../../network/transfer/share";
+ import CheckIcon from "../icons/CheckIcon.svelte";
+ import CloseIcon from "../icons/CloseIcon.svelte";
export let token: string;
@@ -10,22 +12,63 @@
function decline() {}
</script>
-<div class="container">
- <span>{token}</span>
+<!-- TODO: Replace placeholder values and show IP instead of token. -->
+<ul class="request">
<div class="buttons">
- <button on:click={accept}>Accept</button>
- <button on:click={decline}>X</button>
+ <div class="round-button" on:click={accept}>
+ <CheckIcon color="white" />
+ </div>
+ <div class="plain-button" on:click={decline}>
+ <CloseIcon color="black" />
+ </div>
</div>
-</div>
+ <li>Requested at 14:38</li>
+ <li class="ip">{token}</li>
+ <li>Trusowo, Russia</li>
+ <li>Firefox 89</li>
+</ul>
<style>
- .container {
+ .request {
+ background-color: white;
+ color: #626262;
+ padding: 17px 20px;
+ font-size: 12px;
+ line-height: 1.5rem;
+ position: relative;
+ }
+
+ ul {
+ list-style-type: none;
+ }
+
+ .ip {
+ line-height: 1.75rem;
+ font-size: 16px;
+ color: black;
+ }
+
+ .buttons {
+ position: absolute;
+ right: 20px;
display: flex;
justify-content: space-between;
+ width: 50px;
align-items: center;
}
- .buttons {
+ .round-button {
+ width: 24px;
+ height: 24px;
+ border-radius: 100%;
+ background-color: black;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .plain-button {
display: flex;
+ align-items: center;
}
</style>
diff --git a/assets/src/components/share/Requests.svelte b/assets/src/components/share/Requests.svelte
index 98596c6..f9ef237 100644
--- a/assets/src/components/share/Requests.svelte
+++ b/assets/src/components/share/Requests.svelte
@@ -1,4 +1,9 @@
<script lang="ts">
+ import requests from "../../stores/requests";
+ import Request from "./Request.svelte";
+</script>
+
+<!-- <script lang="ts">
import { getOwnToken, start } from "../../network/channel/connection";
import { startShare } from "../../network/channel/share";
@@ -13,9 +18,9 @@
{#await startPromise}
<h3>Fetching token...</h3>
{:then}
- <h3>Your token is <b>{getOwnToken()}</b>.</h3>
+ <h3>Your token is <b>{getOwnToken()}</b>.</h3> -->
- {#each $requests as request}
- <Request token={request} />
- {/each}
-{/await}
+{#each $requests as request}
+ <Request token={request} />
+{/each}
+<!-- {/await} -->
diff --git a/assets/src/components/share/DataPicker.svelte b/assets/src/components/share/Selector.svelte
index 6e8dbd4..e4c7c07 100644
--- a/assets/src/components/share/DataPicker.svelte
+++ b/assets/src/components/share/Selector.svelte
@@ -1,10 +1,14 @@
<script lang="ts">
+ import { start } from "../../network/channel/connection";
+ import { startShare } from "../../network/channel/share";
+
import data from "../../stores/data";
let value = "";
const submit = () => {
data.set(value);
+ start().then(startShare);
};
// TODO: Accept data other than text.