summaryrefslogtreecommitdiff
path: root/ui/routes/(login)
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-11 20:55:36 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-11 20:55:36 -0400
commit5ff106e910544788bc916626ae7665cb26e5af30 (patch)
treef03f98677293a9d892e2d21d1a9a80aeedab60a3 /ui/routes/(login)
parentd33c8af14c4adc1c15ab048299e06f9f35ae4de6 (diff)
Provide a separate "initial setup" endpoint that creates a user.
Diffstat (limited to 'ui/routes/(login)')
-rw-r--r--ui/routes/(login)/login/+page.svelte23
-rw-r--r--ui/routes/(login)/setup/+page.svelte25
2 files changed, 47 insertions, 1 deletions
diff --git a/ui/routes/(login)/login/+page.svelte b/ui/routes/(login)/login/+page.svelte
index c333fdd..a349660 100644
--- a/ui/routes/(login)/login/+page.svelte
+++ b/ui/routes/(login)/login/+page.svelte
@@ -1,5 +1,26 @@
<script>
+ import { goto } from '$app/navigation';
+ import { logIn } from '$lib/apiServer';
+ import { currentUser } from '$lib/store';
+
import LogIn from '$lib/components/LogIn.svelte';
+
+ let disabled;
+ let username;
+ let password;
+
+ async function onSubmit() {
+ debugger;
+ disabled = true;
+ const response = await logIn(username, password);
+ if (200 <= response.status && response.status < 300) {
+ currentUser.update(() => ({ username }));
+ username = '';
+ password = '';
+ goto('/');
+ }
+ disabled = false;
+ }
</script>
-<LogIn />
+<LogIn bind:disabled bind:username bind:password on:submit={onSubmit} />
diff --git a/ui/routes/(login)/setup/+page.svelte b/ui/routes/(login)/setup/+page.svelte
new file mode 100644
index 0000000..252e79b
--- /dev/null
+++ b/ui/routes/(login)/setup/+page.svelte
@@ -0,0 +1,25 @@
+<script>
+ import { goto } from '$app/navigation';
+ import { setup } from '$lib/apiServer';
+ import { currentUser } from '$lib/store';
+
+ import LogIn from '$lib/components/LogIn.svelte';
+
+ let disabled;
+ let username;
+ let password;
+
+ async function onSubmit() {
+ disabled = true;
+ const response = await setup(username, password);
+ if (200 <= response.status && response.status < 300) {
+ currentUser.update(() => ({ username }));
+ username = '';
+ password = '';
+ goto('/');
+ }
+ disabled = false;
+ }
+</script>
+
+<LogIn bind:disabled bind:username bind:password legend="set up" on:submit={onSubmit} />