import { useEffect } from 'react' import { useDroppable } from '@dnd-kit/core' import { DomainGroupHeader } from '@/components/groups-board/domain-group-header' import { DomainRow } from '@/components/groups-board/domain-row' import type { BoardColumn } from '@/components/groups-board/types' import type { Group } from '@/lib/schemas' import { AccordionContent, AccordionItem, } from '@cfdm/ui/components/accordion' import { Empty, EmptyDescription, EmptyHeader, EmptyTitle, } from '@cfdm/ui/components/empty' import { ItemGroup, ItemSeparator } from '@cfdm/ui/components/item' import { cn } from '@cfdm/ui/lib/utils' interface DomainGroupItemProps { column: BoardColumn isOpen?: boolean isDragging?: boolean onExpandColumn?: (columnId: string) => void onEditGroup?: (group: Group) => void onDeleteGroup?: (group: Group) => void dragDisabled?: boolean serviceLabelsByDomain?: Map } export function DomainGroupItem({ column, isOpen = true, isDragging = false, onExpandColumn, onEditGroup, onDeleteGroup, dragDisabled = false, serviceLabelsByDomain, }: DomainGroupItemProps) { const { setNodeRef, isOver } = useDroppable({ id: column.id, disabled: dragDisabled, }) useEffect(() => { if (isOver && isDragging && !dragDisabled) { onExpandColumn?.(column.id) } }, [isOver, isDragging, dragDisabled, column.id, onExpandColumn]) return (
{column.items.length > 0 ? ( {column.items.map((domain, index) => (
{index > 0 ? : null}
))}
) : ( Нет доменов в группе Перетащите домен сюда )}
) }