e.key === 'Escape' && (searchInput = '')}
class="pl-8 h-8 w-48 text-sm"
/>
{#if $canAccess('volumes', 'remove')}
confirmPrune = open}
>
{#snippet children({ open })}
{#if pruneStatus === 'pruning'}
{:else if pruneStatus === 'success'}
{:else if pruneStatus === 'error'}
{:else}
{/if}
Prune
{/snippet}
{/if}
{#if $canAccess('volumes', 'create')}
{/if}
{#if selectedVolumes.size > 0}
{selectedInFilter.length} selected
{#if $canAccess('volumes', 'remove')}
confirmBulkRemove = open}
>
{#snippet children({ open })}
Delete
{/snippet}
{/if}
{/if}
{#if !loading && ($environments.length === 0 || !$currentEnvironment)}
{:else if !loading && volumes.length === 0}
{:else}
{ sortField = state.field as SortField; sortDirection = state.direction; }}
highlightedKey={highlightedRowId}
onRowClick={(volume) => { highlightedRowId = highlightedRowId === volume.name ? null : volume.name; }}
>
{#snippet cell(column, volume, rowState)}
{@const stack = volume.labels['com.docker.compose.project']}
{#if column.id === 'name'}
{volume.name}
{:else if column.id === 'driver'}
{volume.driver}
{:else if column.id === 'scope'}
{volume.scope}
{:else if column.id === 'stack'}
{#if stack}
{stack}
{:else}
-
{/if}
{:else if column.id === 'usedBy'}
{#if volume.usedBy && volume.usedBy.length > 0}
{#each volume.usedBy.slice(0, 3) as container}
{/each}
{#if volume.usedBy.length > 3}
+{volume.usedBy.length - 3}
{/if}
{:else}
-
{/if}
{:else if column.id === 'created'}
{formatDate(volume.created)}
{:else if column.id === 'actions'}
{#if $canAccess('volumes', 'inspect')}
{/if}
{#if $canAccess('volumes', 'create')}
{/if}
{#if $canAccess('volumes', 'remove')}
removeVolume(volume.name)}
onOpenChange={(open) => confirmDeleteName = open ? volume.name : null}
>
{#snippet children({ open })}
{/snippet}
{#if deleteError?.name === volume.name}
{deleteError.message}
{/if}
{/if}
{/if}
{/snippet}
{/if}