From b8fec26115be7202b59127f80ee861010693a828 Mon Sep 17 00:00:00 2001 From: martin <74269598+martabal@users.noreply.github.com> Date: Sun, 24 Sep 2023 15:22:46 +0200 Subject: [PATCH] refactor(web): album listing page (#4146) * feat: add more options to album page * pr feedback * pr feedback * feat: add quick actions on the list mode * feat: responsive design * feat: remove dropdown for display mode * pr feedback --- .../lib/components/elements/dropdown.svelte | 20 +- .../components/elements/table-header.svelte | 29 +++ .../components/forms/edit-album-form.svelte | 59 ++++++ .../side-bar/side-bar-section.svelte | 2 +- web/src/routes/(user)/albums/+page.svelte | 200 ++++++++++++++---- 5 files changed, 260 insertions(+), 50 deletions(-) create mode 100644 web/src/lib/components/elements/table-header.svelte create mode 100644 web/src/lib/components/forms/edit-album-form.svelte diff --git a/web/src/lib/components/elements/dropdown.svelte b/web/src/lib/components/elements/dropdown.svelte index b0d5646cde..b6b7a17b49 100644 --- a/web/src/lib/components/elements/dropdown.svelte +++ b/web/src/lib/components/elements/dropdown.svelte @@ -4,13 +4,12 @@ import { clickOutside } from '$lib/utils/click-outside'; import { fly } from 'svelte/transition'; import type Icon from 'svelte-material-icons/DotsVertical.svelte'; + import { createEventDispatcher } from 'svelte'; - interface DropdownOption { - value: string; - icon?: Icon; - } - - export let options: DropdownOption[] | string[] = []; + const dispatch = createEventDispatcher<{ + select: string; + }>(); + export let options: string[]; export let value = options[0]; export let icons: (typeof Icon)[] | undefined = undefined; @@ -21,7 +20,12 @@ }; const handleSelectOption = (index: number) => { - value = options[index]; + if (options[index] === value) { + dispatch('select', value); + } else { + value = options[index]; + } + showMenu = false; }; @@ -36,7 +40,7 @@ {#if icon} {/if} - {value} + diff --git a/web/src/lib/components/elements/table-header.svelte b/web/src/lib/components/elements/table-header.svelte new file mode 100644 index 0000000000..c89bff3db2 --- /dev/null +++ b/web/src/lib/components/elements/table-header.svelte @@ -0,0 +1,29 @@ + + + diff --git a/web/src/lib/components/forms/edit-album-form.svelte b/web/src/lib/components/forms/edit-album-form.svelte new file mode 100644 index 0000000000..121eeeee47 --- /dev/null +++ b/web/src/lib/components/forms/edit-album-form.svelte @@ -0,0 +1,59 @@ + + +
+
+ +

Edit album

+
+ +
+
+ + +
+ +
+ +