handleNextAsset() }, { shortcut: { key: 'd' }, onShortcut: () => handleNextAsset() }, { shortcut: { key: 'ArrowLeft' }, onShortcut: () => handlePreviousAsset() }, { shortcut: { key: 'a' }, onShortcut: () => handlePreviousAsset() }, { shortcut: { key: 'Escape' }, onShortcut: () => handleEscape() }, ]} /> {#if assetMultiSelectManager.selectionActive}
{@const Actions = getAssetBulkActions($t)} {#if authManager.preferences.tags.enabled && assetMultiSelectManager.isAllUserOwned} {/if}
{/if}
{#if current} goto(Route.photos())} forceDark multiRow> {#snippet leading()} {#if current}

{$memoryLaneTitle(current.memory)}

{/if} {/snippet}
handlePromiseError(handleAction('PlayPauseButtonClick', paused ? 'play' : 'pause'))} />
{#each current.memory.assets as asset, index (asset.id)} {/each}

{(current.assetIndex + 1).toLocaleString($locale)}/{current.memory.assets.length.toLocaleString($locale)}

{#if currentTimelineAssets.some((asset) => asset.type === AssetTypeEnum.Video)}
($videoViewerMuted = !$videoViewerMuted)} />
{/if}
{#if galleryInView}
{/if}
{#key current.asset.id} {#if current.asset.isVideo} {:else} {/if} {/key}
handleSaveMemory()} class="w-12 h-12" /> handlePromiseError(handleAction('ContextMenuClick', 'pause'))} direction="left" size="medium" align="bottom-right" > handleDeleteMemory()} text={$t('remove_memory')} icon={mdiCardsOutline} /> handleDeleteMemoryAsset()} text={$t('remove_photo_from_memory')} icon={mdiImageMinusOutline} />
{#await currentMemoryAssetFull then asset} {#if asset} {/if} {/await}
{#if current.previous}
{/if} {#if current.next}
{/if}

{fromISODateTimeUTC(current.memory.assets[0].localDateTime).toLocaleString(DateTime.DATE_FULL, { locale: $locale, })}

{#await currentMemoryAssetFull then asset} {asset?.exifInfo?.city || ''} {asset?.exifInfo?.country || ''} {/await}

{/if}
{#if current}
memoryGallery?.scrollIntoView({ behavior: 'smooth' })} />
{/if}