feat(ServerManager): add group selection functionality for servers in ServerManager and ServerGroupCard components
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m51s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m51s
This commit is contained in:
@@ -284,6 +284,17 @@ function ServerManager() {
|
||||
setSelectedServers(newSet);
|
||||
};
|
||||
|
||||
const toggleGroupSelection = (servers, selectAll) => {
|
||||
setSelectedServers((prev) => {
|
||||
const next = new Set(prev);
|
||||
servers.forEach((s) => {
|
||||
if (selectAll) next.add(s.ip);
|
||||
else next.delete(s.ip);
|
||||
});
|
||||
return next;
|
||||
});
|
||||
};
|
||||
|
||||
const selectAllServers = () => {
|
||||
if (selectedServers.size === filteredServers.length) {
|
||||
setSelectedServers(new Set());
|
||||
@@ -838,6 +849,7 @@ function ServerManager() {
|
||||
servers={item.servers}
|
||||
selectedSet={selectedServers}
|
||||
onSelect={toggleServerSelection}
|
||||
onSelectGroup={toggleGroupSelection}
|
||||
onEdit={handleEdit}
|
||||
onDelete={confirmDelete}
|
||||
/>
|
||||
|
||||
@@ -31,6 +31,7 @@ export default function ServerGroupCard({
|
||||
servers,
|
||||
selectedSet,
|
||||
onSelect,
|
||||
onSelectGroup,
|
||||
onEdit,
|
||||
onDelete
|
||||
}) {
|
||||
@@ -43,11 +44,15 @@ export default function ServerGroupCard({
|
||||
const allSelected = servers.length > 0 && servers.every((s) => selectedSet.has(s.ip));
|
||||
|
||||
const handleGroupSelect = () => {
|
||||
servers.forEach((s) => {
|
||||
const selected = selectedSet.has(s.ip);
|
||||
if (allSelected && selected) onSelect?.(s);
|
||||
if (!allSelected && !selected) onSelect?.(s);
|
||||
});
|
||||
if (onSelectGroup) {
|
||||
onSelectGroup(servers, !allSelected);
|
||||
} else {
|
||||
servers.forEach((s) => {
|
||||
const selected = selectedSet.has(s.ip);
|
||||
if (allSelected && selected) onSelect?.(s);
|
||||
if (!allSelected && !selected) onSelect?.(s);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user