{#if isShowDeleteConfirmation} (isShowDeleteConfirmation = false)} on:confirm={() => trashOrDelete(true)} /> {/if} {#if showShortcuts} (showShortcuts = !showShortcuts)} /> {/if} (element.scrollTop = detail)} />
{#if showSkeleton}
{#each Array.from({ length: 100 }) as _}
{/each}
{/if} {#if element} {#if isEmpty} {/if}
{#each $assetStore.buckets as bucket, bucketIndex (bucketIndex)} assetStore.cancelBucket(bucket)} let:intersecting top={750} bottom={750} root={element} >
{#if intersecting} handleGroupSelect(group.title, group.assets)} on:shift={handleScrollTimeline} on:selectAssetCandidates={({ detail: asset }) => handleSelectAssetCandidates(asset)} on:selectAssets={({ detail: asset }) => handleSelectAssets(asset)} assets={bucket.assets} bucketDate={bucket.bucketDate} bucketHeight={bucket.bucketHeight} {viewport} /> {/if}
{/each}
{/if}
{#if $showAssetViewer} handlePrevious()} on:next={() => handleNext()} on:close={() => handleClose()} on:action={({ detail: action }) => handleAction(action.type, action.asset)} /> {/if}