{#if isShowDeleteConfirmation} (isShowDeleteConfirmation = false)} on:confirm={() => handlePromiseError(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 (bucket.bucketDate)} 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} handleAction(action.type, action.asset)} /> {/if}