From 5b7f63f63f6fd0c2ca0585baebfbd85cac0ed242 Mon Sep 17 00:00:00 2001 From: Barf-Vader <47476490+Barf-Vader@users.noreply.github.com> Date: Thu, 12 Jun 2025 01:43:53 +0100 Subject: [PATCH 1/2] feat: Added feedback feature --- src/lib/components/Feedback.svelte | 338 ++++++++++++++++++++++++++ src/routes/space/[id]/+page.server.ts | 3 +- src/routes/space/[id]/+page.svelte | 43 +++- 3 files changed, 380 insertions(+), 4 deletions(-) create mode 100644 src/lib/components/Feedback.svelte diff --git a/src/lib/components/Feedback.svelte b/src/lib/components/Feedback.svelte new file mode 100644 index 0000000..0c735b5 --- /dev/null +++ b/src/lib/components/Feedback.svelte @@ -0,0 +1,338 @@ + + +
+
{ + event.preventDefault(); + uploading = true; + await uploadFeedback(); + uploading = false; + hideFunc(); + }} + class="feedbackContainer" + > +

Submit Feedback

+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ {#each newStudySpaceData.tags as tagName (tagName)} + + {/each} + { + dropdownVisible = true; + }} + onblur={() => { + dropdownVisible = false; + }} + onkeypress={(event) => { + event.preventDefault(); + if (event.key === "Enter") { + const tag = filteredTags[0]; + if (tag) addTag(tag)(); + } + }} + placeholder="Add tags..." + /> + {#if dropdownVisible} +
+ {#each filteredTags as avaliableTag (avaliableTag)} + + {/each} +
+ {/if} +
+ + + +
+
+ + diff --git a/src/routes/space/[id]/+page.server.ts b/src/routes/space/[id]/+page.server.ts index b89b2db..2980aca 100644 --- a/src/routes/space/[id]/+page.server.ts +++ b/src/routes/space/[id]/+page.server.ts @@ -1,7 +1,8 @@ import { error } from "@sveltejs/kit"; import type { PageServerLoad } from "./$types"; -export const load: PageServerLoad = async ({ params, locals: { supabase } }) => { +export const load: PageServerLoad = async ({ depends, params, locals: { supabase } }) => { + depends("db:study_spaces"); const { data: space, error: err } = await supabase .from("study_spaces") .select("*, study_space_images(*)") diff --git a/src/routes/space/[id]/+page.svelte b/src/routes/space/[id]/+page.svelte index a3f151b..88ed887 100644 --- a/src/routes/space/[id]/+page.svelte +++ b/src/routes/space/[id]/+page.svelte @@ -5,6 +5,7 @@ import Carousel from "$lib/components/Carousel.svelte"; import CompulsoryTags from "$lib/components/CompulsoryTags.svelte"; import Report from "$lib/components/Report.svelte"; + import Feedback from "$lib/components/Feedback.svelte"; import { onMount } from "svelte"; import { gmapsLoader } from "$lib"; @@ -25,10 +26,15 @@ ); let isReportVisible = $state(false); - function hideFunc() { + function hideReport() { isReportVisible = false; } + let isFeedbackPromptVisible = $state(false); + function hideFeedbackPrompt() { + isFeedbackPromptVisible = false; + } + let mapElem = $state(); onMount(async () => { if (!mapElem) return console.error("Map element not found"); @@ -53,7 +59,17 @@ -{#if isReportVisible} +{#if isReportVisible} +{/if} +{#if isFeedbackPromptVisible} + {/if}
@@ -87,6 +103,15 @@ {/each}

+ + + {#if adminMode} Edit {:else} @@ -124,6 +149,7 @@ border: none; margin: 0 auto; } + .nameContainer { z-index: 10; display: block; @@ -206,7 +232,18 @@ cursor: pointer; margin-top: 1rem; } - + .feedbackButton { + width: 100%; + padding: 0.7rem; + border-radius: 0.5rem; + border: none; + background-color: #49bd85; + color: #ffffff; + font-size: 1rem; + cursor: pointer; + margin-top: 1rem; + text-align: center; + } .editButton { width: 100%; padding: 0.4rem; -- 2.49.1 From 8a6f447202f59c214194628efc3af46c099ec6ed Mon Sep 17 00:00:00 2001 From: Barf-Vader <47476490+Barf-Vader@users.noreply.github.com> Date: Thu, 12 Jun 2025 01:48:15 +0100 Subject: [PATCH 2/2] fix: tag input now works --- src/lib/components/Feedback.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/Feedback.svelte b/src/lib/components/Feedback.svelte index 0c735b5..e053b48 100644 --- a/src/lib/components/Feedback.svelte +++ b/src/lib/components/Feedback.svelte @@ -135,8 +135,8 @@ dropdownVisible = false; }} onkeypress={(event) => { - event.preventDefault(); if (event.key === "Enter") { + event.preventDefault(); const tag = filteredTags[0]; if (tag) addTag(tag)(); } -- 2.49.1