// Copyright © SixtyFPS GmbH // SPDX-License-Identifier: MIT import React, { type ReactNode } from "react"; import { Rnd } from "react-rnd"; import { useInspectorStore } from "../utils/store.js"; interface DialogFrameProps { children: ReactNode; } interface DialogSubComponentProps { children: ReactNode; } const minHeight = 320; const minWidth = 500; function DialogFrame({ children }: DialogFrameProps) { const { resizeWindow } = useInspectorStore(); const childArray = React.Children.toArray(children); const title = childArray.find( (child) => React.isValidElement(child) && child.type === DialogFrame.Title, ); const content = childArray.find( (child) => React.isValidElement(child) && child.type === DialogFrame.Content, ); const footer = childArray.find( (child) => React.isValidElement(child) && child.type === DialogFrame.Footer, ); return ( { resizeWindow( Number.parseInt(refToElement.style.width), Number.parseInt(refToElement.style.height), ); }} >
{title} {content}
{footer}
); } DialogFrame.Title = function DialogTitle({ children, }: DialogSubComponentProps) { return
{children}
; }; DialogFrame.Content = function DialogContent({ children, }: DialogSubComponentProps) { return
{children}
; }; DialogFrame.Footer = function DialogFooter({ children, }: DialogSubComponentProps) { return ; }; export default DialogFrame;