fix: save code in ide
ci-front / build (push) Successful in 2m11s

This commit is contained in:
nikita
2026-04-04 12:57:03 +03:00
parent 822f953698
commit 8175d7b3a5
+26 -6
View File
@@ -125,18 +125,23 @@ export const useIDEStore = create<IDEState>((set, get) => ({
// Выбор файла // Выбор файла
selectFile: (node: FileNode) => { selectFile: (node: FileNode) => {
if (node.type === "file") { if (node.type === "file") {
const { openFiles } = get(); const { openFiles, files } = get();
if (!openFiles.find((f) => f.path === node.path)) { // Берём актуальную версию из дерева файлов
set((state) => ({ openFiles: [...state.openFiles, node] })); const latestFile = files ? findNode(files, node.path || "") : null;
const fileToOpen =
latestFile && latestFile.type === "file" ? latestFile : node;
if (!openFiles.find((f) => f.path === fileToOpen.path)) {
set((state) => ({ openFiles: [...state.openFiles, fileToOpen] }));
} }
set({ activeFile: node }); set({ activeFile: fileToOpen });
} }
}, },
// Обновление содержимого файла // Обновление содержимого файла
updateFileContent: (content: string) => { updateFileContent: (content: string) => {
const { activeFile } = get(); const { activeFile, files } = get();
if (activeFile) { if (activeFile && files) {
const updatedFile = { ...activeFile, content }; const updatedFile = { ...activeFile, content };
set({ activeFile: updatedFile }); set({ activeFile: updatedFile });
set((state) => ({ set((state) => ({
@@ -144,6 +149,21 @@ export const useIDEStore = create<IDEState>((set, get) => ({
f.path === activeFile.path ? updatedFile : f, f.path === activeFile.path ? updatedFile : f,
), ),
})); }));
// Обновляем также в дереве файлов
const updateFileInTree = (node: FileNode): FileNode => {
if (node.path === activeFile.path) {
return updatedFile;
}
if (node.children) {
return {
...node,
children: node.children.map((child) => updateFileInTree(child)),
};
}
return node;
};
set({ files: updateFileInTree(files) });
} }
}, },