import React, { useEffect } from "react"; import { MdAdd } from "react-icons/md"; import { GoTrash } from "react-icons/go"; import { useIDEStore, initialFiles as defaultInitialFiles, } from "./store/useIDEStore"; import type { FileNode } from "./types"; import { FileExplorer, TabBar, CodeEditor, TitleBar, StatusBar, } from "./components"; interface IDEProps { initialFiles?: FileNode; } export const IDE: React.FC = ({ initialFiles: externalFiles, }: IDEProps = {}) => { const files = useIDEStore((state) => state.files); const openFiles = useIDEStore((state) => state.openFiles); const activeFile = useIDEStore((state) => state.activeFile); const createNewProject = useIDEStore((state) => state.createNewProject); const selectFile = useIDEStore((state) => state.selectFile); const updateFileContent = useIDEStore((state) => state.updateFileContent); const closeFile = useIDEStore((state) => state.closeFile); const closeAllFiles = useIDEStore((state) => state.closeAllFiles); const closeOtherFiles = useIDEStore((state) => state.closeOtherFiles); const initialize = useIDEStore((state) => state.initialize); const isInitialized = useIDEStore((state) => state.isInitialized); // Инициализация файлов useEffect(() => { if (!isInitialized) { const filesToInit = externalFiles || defaultInitialFiles; initialize(filesToInit); } }, [isInitialized, externalFiles, initialize]); // Если проект не открыт if (!files) { return (
No project open
Create a new project to get started
); } return (
{activeFile ? `${activeFile.name} - ` : ""} {files.name}
); }; export default IDE;