import React, { useState } from "react"; import { createPortal } from "react-dom"; import { Box, Close, Grid, useThemeUI } from "theme-ui"; import { useSpring, animated, config } from "react-spring"; import ReactResizeDetector from "react-resize-detector"; import SimpleBar from "simplebar-react"; import { useGroup } from "../../contexts/GroupContext"; import { UNGROUP_ID_PREFIX } from "../../contexts/TileDragContext"; import Droppable from "../drag/Droppable"; import useResponsiveLayout from "../../hooks/useResponsiveLayout"; function TilesOverlay({ children }) { const { openGroupId, onGroupClose, onGroupSelect } = useGroup(); const { theme } = useThemeUI(); const layout = useResponsiveLayout(); const openAnimation = useSpring({ opacity: openGroupId ? 1 : 0, transform: openGroupId ? "scale(1)" : "scale(0.99)", config: config.gentle, }); const [containerSize, setContinerSize] = useState(0); function handleResize(width, height) { const size = Math.min(width, height) - 16; setContinerSize(size); } function renderUngroupBoxes() { return createPortal(
, document.body ); } return ( <> {openGroupId && renderUngroupBoxes()} {openGroupId && ( )} openGroupId && onGroupClose()} > e.stopPropagation()} > onGroupSelect()} > {children} onGroupClose()} sx={{ position: "absolute", top: 0, right: 0 }} /> ); } export default TilesOverlay;