added project filter to links page

pull/3/head
TZGyn 2 years ago
parent 51c946c7dd
commit f3bb8603eb
Signed by: TZGyn
GPG Key ID: 122EAF77AE81FD4A

@ -18,9 +18,32 @@
} from 'lucide-svelte' } from 'lucide-svelte'
import { goto, invalidateAll } from '$app/navigation' import { goto, invalidateAll } from '$app/navigation'
import Qr from '$lib/components/QR.svelte' import Qr from '$lib/components/QR.svelte'
import { page } from '$app/stores'
export let data: PageData export let data: PageData
let selectedProject: any = undefined
$: updateSelectedProject(selectedProject)
const updateSelectedProject = async (selectedProject: any) => {
let project_uuid = null
if (selectedProject && selectedProject.value) {
project_uuid = selectedProject.value
const url = new URLSearchParams()
url.set('project', `${project_uuid}`)
await goto(`?${url}`, { replaceState: true })
return
}
if ($page.url.searchParams.has('project')) {
const url = new URLSearchParams()
url.delete('project')
await goto(`?${url}`, { replaceState: true })
}
}
let dialogOpen = false let dialogOpen = false
let inputLink = '' let inputLink = ''
let isLoading = false let isLoading = false
@ -125,6 +148,25 @@
</div> </div>
<Separator /> <Separator />
<div class="p-4">
<Select.Root portal={null} bind:selected={selectedProject}>
<Select.Trigger class="w-[180px]">
<Select.Value placeholder="Select a project" />
</Select.Trigger>
<Select.Content>
<Select.Group>
<Select.Label>Project</Select.Label>
<Select.Item value={null} label={'None'}>None</Select.Item>
{#each data.projects as project}
<Select.Item value={project.uuid} label={project.name}
>{project.name}</Select.Item>
{/each}
</Select.Group>
</Select.Content>
<Select.Input name="favoriteFruit" />
</Select.Root>
</div>
{#if data.shorteners.length > 0} {#if data.shorteners.length > 0}
<div class="flex flex-col gap-4 overflow-scroll p-4"> <div class="flex flex-col gap-4 overflow-scroll p-4">
{#each data.shorteners as shortener} {#each data.shorteners as shortener}

Loading…
Cancel
Save