"use client"; import { useEffect } from "react"; import { Loader2 } from "lucide-react"; import { useEditorStore } from "@/stores/editor-store"; import { useKeybindingsListener, useKeybindingDisabler, } from "@/hooks/use-keybindings"; import { useEditorActions } from "@/hooks/use-editor-actions"; interface EditorProviderProps { children: React.ReactNode; } export function EditorProvider({ children }: EditorProviderProps) { const { isInitializing, isPanelsReady, initializeApp } = useEditorStore(); const { disableKeybindings, enableKeybindings } = useKeybindingDisabler(); // Set up action handlers useEditorActions(); // Set up keybinding listener useKeybindingsListener(); // Disable keybindings when initializing useEffect(() => { if (isInitializing || !isPanelsReady) { disableKeybindings(); } else { enableKeybindings(); } }, [isInitializing, isPanelsReady, disableKeybindings, enableKeybindings]); useEffect(() => { initializeApp(); }, [initializeApp]); // Show loading screen while initializing if (isInitializing || !isPanelsReady) { return (

Loading editor...

); } // App is ready, render children return <>{children}; }