|
232 | 232 | }); |
233 | 233 | </script> |
234 | 234 |
|
235 | | -{#snippet imageGrid()} |
236 | | - <SimpleImageGrid {viewType} {gridId} {multiple}> |
237 | | - <InfiniteScroll items={listedAssets ?? []} itemKey="id"> |
238 | | - {#snippet renderItem(/** @type {ExternalAsset} */ asset)} |
239 | | - {#await sleep() then} |
240 | | - {@const { id, previewURL, description, kind: _kind } = asset} |
241 | | - <SimpleImageGridItem |
242 | | - value={id} |
243 | | - {viewType} |
244 | | - {multiple} |
245 | | - selected={isSelected(asset)} |
246 | | - onChange={({ detail: { selected } }) => { |
247 | | - onSelectionChange(asset, selected); |
248 | | - }} |
249 | | - > |
250 | | - <AssetPreview kind={_kind} src={previewURL} variant="tile" crossorigin="anonymous" /> |
251 | | - {#if !$isSmallScreen || viewType === 'list'} |
252 | | - <AssetPath path={description} /> |
253 | | - {/if} |
254 | | - </SimpleImageGridItem> |
255 | | - {/await} |
256 | | - {/snippet} |
257 | | - </InfiniteScroll> |
258 | | - </SimpleImageGrid> |
259 | | -{/snippet} |
260 | | -
|
261 | | -{#if hasAuthInfo} |
262 | | - {#if error} |
263 | | - <EmptyState> |
264 | | - <span role="alert">{$_(`assets_dialog.error.${error}`)}</span> |
265 | | - </EmptyState> |
266 | | - {:else if !listedAssets} |
| 235 | +{#snippet content()} |
| 236 | + {#if !listedAssets} |
267 | 237 | <EmptyState> |
268 | 238 | <span role="alert">{$_(searchTerms ? 'searching' : 'loading')}</span> |
269 | 239 | </EmptyState> |
270 | 240 | {:else if !listedAssets.length} |
271 | 241 | <EmptyState> |
272 | 242 | <span role="alert">{$_('no_files_found')}</span> |
273 | 243 | </EmptyState> |
| 244 | + {:else} |
| 245 | + <SimpleImageGrid {viewType} {gridId} {multiple}> |
| 246 | + <InfiniteScroll items={listedAssets ?? []} itemKey="id"> |
| 247 | + {#snippet renderItem(/** @type {ExternalAsset} */ asset)} |
| 248 | + {#await sleep() then} |
| 249 | + {@const { id, previewURL, description, kind: _kind } = asset} |
| 250 | + <SimpleImageGridItem |
| 251 | + value={id} |
| 252 | + {viewType} |
| 253 | + {multiple} |
| 254 | + selected={isSelected(asset)} |
| 255 | + onChange={({ detail: { selected } }) => { |
| 256 | + onSelectionChange(asset, selected); |
| 257 | + }} |
| 258 | + > |
| 259 | + <AssetPreview kind={_kind} src={previewURL} variant="tile" crossorigin="anonymous" /> |
| 260 | + {#if !$isSmallScreen || viewType === 'list'} |
| 261 | + <AssetPath path={description} /> |
| 262 | + {/if} |
| 263 | + </SimpleImageGridItem> |
| 264 | + {/await} |
| 265 | + {/snippet} |
| 266 | + </InfiniteScroll> |
| 267 | + </SimpleImageGrid> |
| 268 | + {/if} |
| 269 | +{/snippet} |
| 270 | +
|
| 271 | +{#if hasAuthInfo} |
| 272 | + {#if error} |
| 273 | + <EmptyState> |
| 274 | + <span role="alert">{$_(`assets_dialog.error.${error}`)}</span> |
| 275 | + </EmptyState> |
274 | 276 | {:else if upload} |
275 | 277 | <DropZone accept={fieldConfig?.accept} {multiple} onDrop={({ files }) => uploadFiles(files)}> |
276 | | - {@render imageGrid()} |
| 278 | + {@render content()} |
277 | 279 | </DropZone> |
278 | 280 | {:else} |
279 | | - {@render imageGrid()} |
| 281 | + {@render content()} |
280 | 282 | {/if} |
281 | 283 | {:else if hasConfig} |
282 | 284 | <EmptyState> |
|
0 commit comments