import { ReactNode, useRef } from 'react';
import { PortalContainerContext } from '@/contexts/PortalContainerContext';
import {
WorkspaceProvider,
useWorkspaceContext,
} from '@/contexts/WorkspaceContext';
import { ActionsProvider } from '@/contexts/ActionsContext';
import { ExecutionProcessesProvider } from '@/contexts/ExecutionProcessesContext';
import NiceModal from '@ebay/nice-modal-react';
import '@/styles/new/index.css';
interface NewDesignScopeProps {
children: ReactNode;
}
// Wrapper component to get workspaceId from context for ExecutionProcessesProvider
function ExecutionProcessesProviderWrapper({
children,
}: {
}) {
const { workspaceId } = useWorkspaceContext();
return (
<ExecutionProcessesProvider attemptId={workspaceId}>
{children}
</ExecutionProcessesProvider>
);
export function NewDesignScope({ children }: NewDesignScopeProps) {
const ref = useRef<HTMLDivElement>(null);
<div ref={ref} className="new-design h-full">
<PortalContainerContext.Provider value={ref}>
<WorkspaceProvider>
<ExecutionProcessesProviderWrapper>
<ActionsProvider>
<NiceModal.Provider>{children}</NiceModal.Provider>
</ActionsProvider>
</ExecutionProcessesProviderWrapper>
</WorkspaceProvider>
</PortalContainerContext.Provider>
</div>