From 79c36ade395dd49ad8f25244d46f21d14656733b Mon Sep 17 00:00:00 2001
From: Fuwn
Date: Thu, 26 Oct 2023 15:59:30 -0700
Subject: feat(badges): errors
---
src/routes/user/[user]/badges/+page.svelte | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
(limited to 'src/routes/user')
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index 324d568e..fb5f5e29 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -7,6 +7,7 @@
let editMode = false;
let currentUserIdentity: ReturnType;
+ let error: null | string;
onMount(async () => {
if (data.user) {
@@ -26,6 +27,18 @@
const activityURL = document.querySelector('input[name="activity_url"]') as HTMLInputElement;
const description = document.querySelector('input[name="description"]') as HTMLInputElement;
+ if (!imageURL.value || !activityURL.value) {
+ error = 'Fields cannot be empty.';
+
+ return;
+ }
+
+ if (!imageURL.value.startsWith('http') || !activityURL.value.startsWith('http')) {
+ error = 'URLs must start with http or https.';
+
+ return;
+ }
+
fetch(
`/api/badges/add?image=${encodeURIComponent(imageURL.value)}&post=${encodeURIComponent(
activityURL.value
@@ -34,6 +47,7 @@
method: 'POST'
}
).then(() => {
+ error = null;
imageURL.value = '';
activityURL.value = '';
description.value = '';
@@ -69,6 +83,10 @@
careful!
+ {#if error}
+ {error}
+ {/if}
+