diff --git a/frontend/src/components/server/ServerGroupCard.jsx b/frontend/src/components/server/ServerGroupCard.jsx index 231b46c..59cf06c 100644 --- a/frontend/src/components/server/ServerGroupCard.jsx +++ b/frontend/src/components/server/ServerGroupCard.jsx @@ -5,7 +5,6 @@ import { IconChevronUp, IconRouter, IconCircleCheck, - IconSquare, IconNetwork, IconCloud } from '@tabler/icons-react'; @@ -41,6 +40,15 @@ export default function ServerGroupCard({ const tunnel = first?.tunnel; const wanCount = servers.length; const anySelected = servers.some((s) => selectedSet.has(s.ip)); + 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); + }); + }; return (
onSelect?.(first)} + onClick={handleGroupSelect} >
- {anySelected ? ( + {allSelected ? ( ) : ( @@ -171,27 +179,27 @@ export default function ServerGroupCard({ className={`d-flex align-items-stretch rounded mb-1 overflow-hidden ${isSelected ? 'bg-primary-lt' : 'bg-white'}`} style={{ boxShadow: '0 0 0 1px rgba(0,0,0,0.06)' }} > - {/* Бейдж HOME у вложенного роутера */} + {/* Бейдж HOME — клик как у обычной карточки, без явной галочки */}
onSelect?.(server)} + title={isSelected ? 'Снять выбор' : 'Выбрать'} > - + {isSelected ? ( + + ) : ( + + )} HOME
- {countryToFlag(server.country)}
{serverName}