Skip to content

Commit

Permalink
fix unused containers
Browse files Browse the repository at this point in the history
  • Loading branch information
martinpitt committed Feb 6, 2025
1 parent 8dc8689 commit d1f4652
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions src/PruneUnusedContainersModal.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,18 @@ const getContainerRow = (container, userSystemServiceAvailable, user, selected)
}
});

return { columns, selected, props: { key: container.id } };
return { columns, selected, props: { key: container.key } };
};

const PruneUnusedContainersModal = ({ close, unusedContainers, onAddNotification, userSystemServiceAvailable, user }) => {
const [isPruning, setPruning] = useState(false);
const [selectedContainerIds, setSelectedContainerIds] = React.useState(unusedContainers.map(u => u.key));
const [selectedContainerKeys, setSelectedContainerKeys] = React.useState(unusedContainers.map(u => u.key));

const handlePruneUnusedContainers = () => {
setPruning(true);

const actions = unusedContainers
.filter(u => selectedContainerIds.includes(u.key))
.filter(u => selectedContainerKeys.includes(u.key))
.map(u => client.delContainer(u.uid, u.id, true));

Promise.all(actions).then(close)
Expand All @@ -65,15 +65,15 @@ const PruneUnusedContainersModal = ({ close, unusedContainers, onAddNotification
if (userSystemServiceAvailable)
columns.push({ title: _("Owner"), sortable: true });

const selectAllContainers = isSelecting => setSelectedContainerIds(isSelecting ? unusedContainers.map(c => c.id) : []);
const isContainerSelected = container => selectedContainerIds.includes(container.id);
const setContainerSelected = (container, isSelecting) => setSelectedContainerIds(prevSelected => {
const otherSelectedContainerNames = prevSelected.filter(r => r !== container.id);
return isSelecting ? [...otherSelectedContainerNames, container.id] : otherSelectedContainerNames;
const selectAllContainers = isSelecting => setSelectedContainerKeys(isSelecting ? unusedContainers.map(c => c.key) : []);
const isContainerSelected = container => selectedContainerKeys.includes(container.key);
const setContainerSelected = (container, isSelecting) => setSelectedContainerKeys(prevSelected => {
const otherSelectedContainerNames = prevSelected.filter(r => r !== container.key);
return isSelecting ? [...otherSelectedContainerNames, container.key] : otherSelectedContainerNames;
});

const onSelectContainer = (id, _rowIndex, isSelecting) => {
const container = unusedContainers.filter(u => u.id === id)[0];
const onSelectContainer = (key, _rowIndex, isSelecting) => {
const container = unusedContainers.filter(u => u.key === key)[0];
setContainerSelected(container, isSelecting);
};

Expand All @@ -86,7 +86,7 @@ const PruneUnusedContainersModal = ({ close, unusedContainers, onAddNotification
<Button id="btn-img-delete" variant="danger"
spinnerAriaValueText={isPruning ? _("Pruning containers") : undefined}
isLoading={isPruning}
isDisabled={isPruning || selectedContainerIds.length === 0}
isDisabled={isPruning || selectedContainerKeys.length === 0}
onClick={handlePruneUnusedContainers}>
{isPruning ? _("Pruning containers") : _("Prune")}
</Button>
Expand All @@ -95,7 +95,7 @@ const PruneUnusedContainersModal = ({ close, unusedContainers, onAddNotification
>
<p>{_("Removes selected non-running containers")}</p>
<ListingTable columns={columns}
onSelect={(_event, isSelecting, rowIndex, rowData) => onSelectContainer(rowData.props.id, rowIndex, isSelecting)}
onSelect={(_event, isSelecting, rowIndex, rowData) => onSelectContainer(rowData.props.key, rowIndex, isSelecting)}
onHeaderSelect={(_event, isSelecting) => selectAllContainers(isSelecting)}
id="unused-container-list"
rows={unusedContainers.map(container => getContainerRow(container, userSystemServiceAvailable, user, isContainerSelected(container))) }
Expand Down

0 comments on commit d1f4652

Please sign in to comment.