diff --git a/web/src/lib/components/asset-viewer/album-list-item.svelte b/web/src/lib/components/asset-viewer/album-list-item.svelte index 9c985977b6..2e8077644c 100644 --- a/web/src/lib/components/asset-viewer/album-list-item.svelte +++ b/web/src/lib/components/asset-viewer/album-list-item.svelte @@ -6,11 +6,26 @@ export let album: AlbumResponseDto; export let variant: 'simple' | 'full' = 'full'; + export let searchQuery: string = ''; + let albumNameArray: string[] = ['', '', '']; + + // This part of the code is responsible for splitting album name into 3 parts where part 2 is the search query + // It is used to highlight the search query in the album name + $: { + let { albumName } = album; + let findIndex = albumName.toLowerCase().indexOf(searchQuery.toLowerCase()); + let findLength = searchQuery.length; + albumNameArray = [ + albumName.slice(0, findIndex), + albumName.slice(findIndex, findIndex + findLength), + albumName.slice(findIndex + findLength) + ]; + } - {#if albums.length > 0} - {#if !shared} + {#if filteredAlbums.length > 0} + {#if !shared && search.length === 0}

RECENT

{#each recentAlbums as album (album.id)} handleSelect(album)} /> @@ -90,15 +109,21 @@ {/if} {#if !shared} -

ALL ALBUMS

+

+ {#if search.length === 0}ALL {/if}ALBUMS +

{/if} - {#each albums as album (album.id)} - handleSelect(album)} /> + {#each filteredAlbums as album (album.id)} + handleSelect(album)} /> {/each} + {:else if albums.length > 0} +

+ It looks like you do not have any albums with this name yet. +

{:else}

It looks like you do not have any albums yet.

{/if} - {/if} - + + {/if} diff --git a/web/src/routes/photos/+page.svelte b/web/src/routes/photos/+page.svelte index 5d0b6e270f..5586be04bd 100644 --- a/web/src/routes/photos/+page.svelte +++ b/web/src/routes/photos/+page.svelte @@ -79,11 +79,12 @@ addToSharedAlbum = shared; }; - const handleAddToNewAlbum = () => { + const handleAddToNewAlbum = (event: CustomEvent) => { isShowAlbumPicker = false; + const { albumName }: { albumName: string } = event.detail; const assetIds = Array.from($selectedAssets).map((asset) => asset.id); - api.albumApi.createAlbum({ albumName: 'Untitled', assetIds }).then((response) => { + api.albumApi.createAlbum({ albumName, assetIds }).then((response) => { const { id, albumName } = response.data; notificationController.show({