mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-22 09:37:17 +00:00
22 lines
541 B
TypeScript
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;
|