webamp/js/components/MilkdropWindow/Desktop.tsx
2019-11-30 13:42:53 -08:00

22 lines
541 B
TypeScript

import React from "react";
import ReactDOM from "react-dom";
interface Props {
children: React.ReactNode;
}
const Desktop = React.memo(({ children }: Props) => {
const [desktopNode] = React.useState(() => document.createElement("div"));
React.useEffect(() => {
desktopNode.classList.add("webamp-desktop");
document.body.appendChild(desktopNode);
return () => {
document.body.removeChild(desktopNode);
};
}, [desktopNode]);
return ReactDOM.createPortal(children, desktopNode);
});
export default Desktop;