{#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}