import { useDroppable } from "@dnd-kit/core"; import { makeStyles, mergeClasses, tokens } from "@fluentui/react-components"; import GroupContext, { GroupContextType } from "../../contexts/GroupContext"; export default function GroupDropZone({ disabled, ...props }: DropZoneProps): React.ReactElement { const { group, indices } = useContext(GroupContext); const id: string = indices.join("/") + "_dropzone"; const { isOver, setNodeRef, active } = useDroppable({ id, data: { indices, item: group }, disabled }); const isDragging = !disabled && active !== null; const cls = useStyles(); return (
{ props.children }
); } export type DropZoneProps = React.DetailedHTMLProps, HTMLDivElement> & { disabled?: boolean; }; const useStyles = makeStyles({ root: { borderRadius: tokens.borderRadiusLarge, borderTopRightRadius: tokens.borderRadiusNone, border: `${tokens.strokeWidthThin} solid transparent` }, over: { backgroundColor: tokens.colorBrandBackground2, border: `${tokens.strokeWidthThin} solid ${tokens.colorBrandStroke1}` }, dragging: { border: `${tokens.strokeWidthThin} dashed ${tokens.colorNeutralStroke1}` } });