mirror of
https://github.com/immich-app/immich.git
synced 2025-05-31 04:05:39 -04:00
* feat: tags * fix: folder tree icons * navigate to tag from detail panel * delete tag * Tag position and add tag button * Tag asset in detail panel * refactor form * feat: navigate to tag page from clicking on a tag * feat: delete tags from the tag page * refactor: moving tag section in detail panel and add + tag button * feat: tag asset action in detail panel * refactor add tag form * fdisable add tag button when there is no selection * feat: tag bulk endpoint * feat: tag colors * chore: clean up * chore: unit tests * feat: write tags to sidecar * Remove tag and auto focus on tag creation form opened * chore: regenerate migration * chore: linting * add color picker to tag edit form * fix: force render tags timeline on navigating back from asset viewer * feat: read tags from keywords * chore: clean up --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
24 lines
788 B
Svelte
24 lines
788 B
Svelte
<script lang="ts">
|
|
import Tree from '$lib/components/shared-components/tree/tree.svelte';
|
|
import { normalizeTreePath, type RecursiveObject } from '$lib/utils/tree-utils';
|
|
|
|
export let items: RecursiveObject;
|
|
export let parent = '';
|
|
export let active = '';
|
|
export let icons: { default: string; active: string };
|
|
export let getLink: (path: string) => string;
|
|
export let getColor: (path: string) => string | undefined = () => undefined;
|
|
</script>
|
|
|
|
<ul class="list-none ml-2">
|
|
{#each Object.entries(items) as [path, tree]}
|
|
{@const value = normalizeTreePath(`${parent}/${path}`)}
|
|
{@const key = value + getColor(value)}
|
|
{#key key}
|
|
<li>
|
|
<Tree {parent} value={path} {tree} {icons} {active} {getLink} {getColor} />
|
|
</li>
|
|
{/key}
|
|
{/each}
|
|
</ul>
|