From a8c913f284ef2bc8f4d882682c398ba834159175 Mon Sep 17 00:00:00 2001
From: Ilion Beyst <ilion.beyst@gmail.com>
Date: Sun, 6 Mar 2022 16:58:01 +0100
Subject: show errors for saving bots

---
 web/pw-server/src/lib/components/SubmitPane.svelte | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

(limited to 'web/pw-server/src/lib/components/SubmitPane.svelte')

diff --git a/web/pw-server/src/lib/components/SubmitPane.svelte b/web/pw-server/src/lib/components/SubmitPane.svelte
index 3c9fe22..6a05e09 100644
--- a/web/pw-server/src/lib/components/SubmitPane.svelte
+++ b/web/pw-server/src/lib/components/SubmitPane.svelte
@@ -8,6 +8,8 @@
   let selectedOpponent = undefined;
   let botName: string | undefined = undefined;
 
+  let saveErrorText = undefined;
+
   onMount(async () => {
     const res = await fetch("/api/bots", {
       headers: {
@@ -62,8 +64,15 @@
     let responseData = await response.json();
     if (response.ok) {
       dispatch("botSaved", responseData);
+      // clear errors
+      saveErrorText = undefined;
     } else {
-      throw responseData;
+      if (responseData["error"] === "BotNameTaken") {
+        saveErrorText = "Bot name is already taken";
+      } else {
+        // unexpected error
+        throw responseData;
+      }
     }
   }
 </script>
@@ -84,6 +93,9 @@
   <div class="save-form">
     <h4>Save your bot</h4>
     <input type="text" class="bot-name-input" placeholder="bot name" bind:value={botName} />
+    {#if saveErrorText}
+      <div class="error-text">{saveErrorText}</div>
+    {/if}
     <button class="submit-button save-button" on:click={saveBot}>Save</button>
   </div>
 </div>
@@ -104,6 +116,10 @@
     margin-top: 8em;
   }
 
+  .error-text {
+    color: red;
+  }
+
   .submit-button {
     padding: 8px 16px;
     border-radius: 8px;
-- 
cgit v1.2.3

