loading state

This commit is contained in:
cupcakearmy 2021-05-08 21:46:52 +02:00
parent d1e9ffd89b
commit 22b1c35b3e
No known key found for this signature in database
GPG Key ID: D28129AE5654D9D9

View File

@ -7,14 +7,13 @@
</script> </script>
<script lang="ts"> <script lang="ts">
import { onMount } from 'svelte'
import copy from 'copy-to-clipboard'
import type { NotePublic } from '$lib/api' import type { NotePublic } from '$lib/api'
import { info, get } from '$lib/api' import { info, get } from '$lib/api'
import { decrypt, getKeyFromString } from '$lib/crypto' import { decrypt, getKeyFromString } from '$lib/crypto'
import Button from '$lib/ui/Button.svelte' import Button from '$lib/ui/Button.svelte'
import TextInput from '$lib/ui/TextInput.svelte'
import copy from 'copy-to-clipboard'
import { onMount } from 'svelte'
export let id: string export let id: string
export let password: string export let password: string
@ -41,12 +40,15 @@
async function show() { async function show() {
try { try {
error = false error = false
loading = true
const data = note || (await get(id)) // Don't get the content twice on wrong password. const data = note || (await get(id)) // Don't get the content twice on wrong password.
const key = await getKeyFromString(password) const key = await getKeyFromString(password)
data.contents = await decrypt(data.contents, key) data.contents = await decrypt(data.contents, key)
note = data note = data
} catch { } catch {
error = true error = true
} finally {
loading = false
} }
} }
</script> </script>
@ -63,18 +65,23 @@
<Button on:click={() => copy(note.contents)}>copy to clipboard</Button> <Button on:click={() => copy(note.contents)}>copy to clipboard</Button>
{:else} {:else}
<form on:submit|preventDefault={show}> <form on:submit|preventDefault={show}>
<p>click below to show and delete the note if the counter has reached it's limit</p> <fieldset>
<Button type="submit">show note</Button> <p>click below to show and delete the note if the counter has reached it's limit</p>
{#if error} <Button type="submit">show note</Button>
<br /> {#if error}
<p class="error-text">
wrong password. could not decipher. probably a broken link. note was destroyed.
<br /> <br />
</p> <p class="error-text">
{/if} wrong password. could not decipher. probably a broken link. note was destroyed.
<br />
</p>
{/if}
</fieldset>
</form> </form>
{/if} {/if}
{/if} {/if}
{#if loading}
<p>loading...</p>
{/if}
<style> <style>
.note { .note {