aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/RegisterOrLogin.svelte
diff options
context:
space:
mode:
authorAdrien Hopkins <[email protected]>2022-08-02 13:13:27 -0500
committerAdrien Hopkins <[email protected]>2022-08-02 13:13:27 -0500
commitc21ee41b206db79b2157d8743b0473a094448dfb (patch)
treefac1a595e451c0b32ceedfe4fb70855270456377 /src/components/RegisterOrLogin.svelte
parent3b216dd6c170a7d71d21a391098c554008c8bdb4 (diff)
parent05f5001fc7d325e31d9c777be11343604c72fbfd (diff)
downloadcoinos-ui-c21ee41b206db79b2157d8743b0473a094448dfb.tar.gz
coinos-ui-c21ee41b206db79b2157d8743b0473a094448dfb.zip
Merge branch 'master' into i18n
Diffstat (limited to 'src/components/RegisterOrLogin.svelte')
-rw-r--r--src/components/RegisterOrLogin.svelte43
1 files changed, 28 insertions, 15 deletions
diff --git a/src/components/RegisterOrLogin.svelte b/src/components/RegisterOrLogin.svelte
index 7cc41709..157c2821 100644
--- a/src/components/RegisterOrLogin.svelte
+++ b/src/components/RegisterOrLogin.svelte
@@ -1,13 +1,15 @@
<script>
+ import { toast } from '@zerodevx/svelte-toast';
import { Icon } from '$comp';
import { post } from '$lib/utils';
- import { token } from '$lib/store';
- import { connect } from '$lib/socket';
+ import { user, token } from '$lib/store';
+ import { auth } from '$lib/socket';
import { goto } from '$app/navigation';
export let page;
- let username, password;
+ let username = 'bob',
+ password = 'pw';
let revealPassword = false;
@@ -16,20 +18,27 @@
'Sign in': '/login'
}[page];
- let submit = () =>
- post(url, { username, password }).then((r) =>
- r.json().then((r) => {
- $token = r.token;
- connect();
- goto('/receive');
- })
- );
+ let submit = async () => {
+ try {
+ let r = await post(url, { username, password });
+ if (!r.token) r = await post('/login', { username, password });
+ $token = r.token;
+ auth();
+ } catch (e) {
+ if (!e.message) e.message = 'Login failed';
+ toast.push(e.message);
+ }
+ };
+
+ $: if ($user) goto(`/${username}/receive`);
</script>
<div class="pt-10">
- <a href="/">
- <Icon icon="logo" style="mx-auto mb-10" />
- </a>
+ <div class="w-[243px] mx-auto mb-10">
+ <a href="/">
+ <Icon icon="logo" />
+ </a>
+ </div>
<div class="flex justify-center items-center">
<div class="shadow-xl rounded-3xl p-10 pb-12 space-y-5 w-full mx-5 md:mx-0 md:w-[400px]">
@@ -38,11 +47,13 @@
<form class="space-y-5" on:submit|preventDefault={submit}>
<div>
<label for="username" class="font-semibold">Username</label>
+ <!-- svelte-ignore a11y-autofocus -->
<input
type="text"
required
class="bg-primary p-4 rounded-2xl w-full"
bind:value={username}
+ autofocus
/>
</div>
@@ -78,7 +89,9 @@
</p>
{:else}
<div class="flex justify-end items-center">
- <a href="" class="underline underline-offset-4 text-black text-sm">Forgot Password?</a>
+ <a href="/forgot" class="underline underline-offset-4 text-black text-sm"
+ >Forgot Password?</a
+ >
</div>
{/if}