feat: update tamplates
ci-front / build (push) Successful in 2m18s

This commit is contained in:
nikita
2026-04-05 07:07:14 +03:00
parent 2bc3da21fd
commit 337e5891f3
3 changed files with 64 additions and 81 deletions
@@ -2,6 +2,8 @@ import React from "react";
import type { FileNode } from "../types";
import { FilePickerItem } from "./FilePickerItem";
import { useFilePickerStore } from "../store/useFilePickerStore";
import { TerminalOutput } from "@/modules/terminal";
import { useTerminalStore } from "@/modules/terminal/store/useTerminalStore";
interface FilePickerProps {
files: FileNode;
@@ -55,6 +57,9 @@ const FilePickerTree: React.FC<{
};
export const FilePicker: React.FC<FilePickerProps> = ({ files, onRun }) => {
const terminalOpen = useTerminalStore((s) => s.isOpen);
const jobs = useTerminalStore((s) => s.jobs);
return (
<div
style={{
@@ -63,6 +68,13 @@ export const FilePicker: React.FC<FilePickerProps> = ({ files, onRun }) => {
backgroundColor: "var(--bg-primary)",
}}
>
{/* Terminal — сверху, над списком файлов */}
{terminalOpen && jobs.length > 0 && (
<div style={{ height: 250 }}>
<TerminalOutput />
</div>
)}
{(files.children || []).map((child, idx) => (
<FilePickerTree key={idx} node={child} level={0} onRun={onRun} />
))}
@@ -60,21 +60,14 @@ export const RunScriptModal: React.FC<RunScriptModalProps> = ({
// 4. Ждём завершения по id
const jobResult = await scriptsApi.waitJob(runResult.id);
// 5. Обновляем джоб
addJob({
id: jobResult.id,
scriptPath,
// 5. Обновляем существующий джоб (не создаём новый!)
const terminalStore = useTerminalStore.getState();
terminalStore.updateJob(runResult.id, {
command: jobResult.command,
stdin: jobResult.stdin,
});
// Обновляем с финальным статусом
const terminalStore = useTerminalStore.getState();
terminalStore.updateJob(jobResult.id, {
status: jobResult.status,
stdout: jobResult.stdout,
stderr: jobResult.stderr,
stdin: jobResult.stdin,
isRunning: false,
});