diff --git a/src/lib/components/inputs/TagFilter.svelte b/src/lib/components/inputs/TagFilter.svelte index ae68a2d..5d82fc8 100644 --- a/src/lib/components/inputs/TagFilter.svelte +++ b/src/lib/components/inputs/TagFilter.svelte @@ -76,15 +76,7 @@ color: #ffffff; margin-top: 0.5rem; } - .submit { - position: sticky; - display: flex; - flex-direction: column; - margin-top: 0.5rem; - bottom: 0; - margin-left: -0.5rem; - width: calc(100% + 1rem); - } + .tagDisplay { display: flex; gap: 0.4rem; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 882797f..84356a1 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -5,6 +5,7 @@ import Navbar from "$lib/components/Navbar.svelte"; import TagFilter from "$lib/components/inputs/TagFilter.svelte"; import {availableStudySpaceTags} from "$lib" + import {allTags} from "$lib" const { data } = $props(); const { studySpaces, supabase } = $derived(data); @@ -13,20 +14,25 @@ let tagFilter = $state(""); let tagFilterElem = $state() let filteredTags = $derived( - availableStudySpaceTags + allTags .filter((tag) => tag.toLowerCase().includes(tagFilter.toLowerCase())) - .filter((tag) => availableStudySpaceTags.includes(tag)) + .filter((tag) => allTags.includes(tag)) ) let filteredStudySpaces = $derived(() => - selectedTags.length == 0 + selectedTags.length === 0 ? studySpaces - : studySpaces.filter(space => - selectedTags.every(tag => - (space.tags || []).includes(tag) - ) - ) - ); + : studySpaces.filter(space => { + const allTags = [ + ...(space.tags || []), + space.volume, + space.wifi, + space.power + ].filter(Boolean); + + return selectedTags.every(tag => allTags.includes(tag)); + }) + ); let dropdownVisible = $state(false) @@ -62,10 +68,8 @@ deleteTag={deleteTag} addTag={addTag} /> - {#each studySpaces.filter(space => - selectedTags.length === 0 || - selectedTags.every(tag => (space.tags || []).includes(tag)) - ) as studySpace (studySpace.id)} + + {#each filteredStudySpaces() as studySpace (studySpace.id)} {@const imgUrl = studySpace.study_space_images.length > 0 ? supabase.storage