fix: Search bar on main page no longer overflows. Selected tags no longer... #44

Merged
tt2022 merged 2 commits from fix/filter-by-tags into master 2025-06-12 01:03:40 +00:00
2 changed files with 20 additions and 5 deletions

View File

@@ -3,7 +3,7 @@
import defaultImg from "$lib/assets/study_space.png"; import defaultImg from "$lib/assets/study_space.png";
import crossUrl from "$lib/assets/cross.svg"; import crossUrl from "$lib/assets/cross.svg";
import Navbar from "$lib/components/Navbar.svelte"; import Navbar from "$lib/components/Navbar.svelte";
import { allTags } from "$lib"; import { allTags, volumeTags, wifiTags, powerOutletTags } from "$lib";
const { data } = $props(); const { data } = $props();
const { studySpaces, supabase } = $derived(data); const { studySpaces, supabase } = $derived(data);
@@ -11,10 +11,25 @@
let selectedTags = $state<string[]>([]); let selectedTags = $state<string[]>([]);
let tagFilter = $state(""); let tagFilter = $state("");
let tagFilterElem = $state<HTMLInputElement>(); let tagFilterElem = $state<HTMLInputElement>();
function categorySelected(category: string[]) {
return category.some((tag) => selectedTags.includes(tag));
}
let filteredTags = $derived( let filteredTags = $derived(
allTags allTags
.filter((tag) => tag.toLowerCase().includes(tagFilter.toLowerCase())) .filter((tag) => tag.toLowerCase().includes(tagFilter.toLowerCase()))
.filter((tag) => allTags.includes(tag)) .filter((tag) => !selectedTags.includes(tag))
.filter((tag) => {
if (selectedTags.includes(tag)) return false;
if (categorySelected(volumeTags) && volumeTags.includes(tag)) return false;
if (categorySelected(wifiTags) && wifiTags.includes(tag)) return false;
if (categorySelected(powerOutletTags) && powerOutletTags.includes(tag))
return false;
return true;
})
); );
let filteredStudySpaces = $derived( let filteredStudySpaces = $derived(
@@ -174,8 +189,8 @@
font-size: 1rem; font-size: 1rem;
} }
.tagInput { .tagInput {
width: 100%; flex: 1 1 100%;
height: 100%; min-width: 10rem;
background: none; background: none;
color: #eaffeb; color: #eaffeb;
font-size: 1rem; font-size: 1rem;

View File

@@ -20,7 +20,7 @@
const { supabase } = $derived(data); const { supabase } = $derived(data);
const { space, images } = $derived(data); const { space, images } = $derived(data);
const studySpaceData = $state({ const studySpaceData = $derived({
...space ...space
}); });