From 1eec6338e1146439b1dbc6207843fbc44dd13088 Mon Sep 17 00:00:00 2001
From: Owen Jacobson <owen@grimoire.ca>
Date: Wed, 30 Oct 2024 18:01:48 -0400
Subject: Don't leave field binding vars uninitialized.

This was causing problems for changing passwords: if the user didn't type anything in the "original password" field, the code path to sending that field to the server was just straight-up omitting the field from the message, rather than setting it to empty string, causing a 422 Unprocessable Entity.

On investigation we had latent bugs related to this in a bunch of spots.
---
 ui/routes/(login)/login/+page.svelte | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

(limited to 'ui/routes/(login)/login/+page.svelte')

diff --git a/ui/routes/(login)/login/+page.svelte b/ui/routes/(login)/login/+page.svelte
index 29dba54..0387e4a 100644
--- a/ui/routes/(login)/login/+page.svelte
+++ b/ui/routes/(login)/login/+page.svelte
@@ -4,19 +4,19 @@
 
     import LogIn from '$lib/components/LogIn.svelte';
 
-    let disabled;
-    let username;
-    let password;
+    let username = "", password = "";
+    let pending = false;
+    $: disabled = pending;
 
     async function onSubmit() {
-        disabled = true;
+        pending = true;
         const response = await logIn(username, password);
         if (200 <= response.status && response.status < 300) {
             username = '';
             password = '';
             goto('/');
         }
-        disabled = false;
+        pending = false;
     }
 </script>
 
-- 
cgit v1.2.3

