'use client' import {ReactNode, useEffect, useState} from "react"; import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; import {faX} from "@fortawesome/free-solid-svg-icons"; import {createPortal} from "react-dom"; interface SettingsPanelProps { title: string; sidebar: ReactNode; children: ReactNode; onClose: () => void; } export default function SettingsPanel({title, sidebar, children, onClose}: SettingsPanelProps) { const [mounted, setMounted] = useState(false); useEffect((): void => { setMounted(true); }, []); if (!mounted) return null; return createPortal(

{title}

{sidebar}
{children}
, document.body ); }