시나리오 콘솔 영역 수정

This commit is contained in:
현성필
2025-01-25 10:32:52 +09:00
parent bca5840712
commit e0fd69ea5a
@@ -12,16 +12,16 @@ import {Button} from '@/components/ui/button.jsx';
const apiClient = new APIClient(); const apiClient = new APIClient();
// ConsoleArea Component // ConsoleArea Component
const ConsoleArea = ({value}) => ( const ConsoleArea = ({value, isVisible}) => (
<div className={`${isVisible ? 'h-full' : 'hidden'}`}>
<MonacoEditor <MonacoEditor
id="scenario-console" id="scenario-console"
value={value} value={value}
language="plaintext" language="plaintext"
readOnly={true} readOnly={true}
height="full" height="full"
/> />
</div>
); );
// Main ScenarioEditor Component // Main ScenarioEditor Component
@@ -29,6 +29,7 @@ const ScenarioEditor = () => {
const diagramRef = useRef(null); const diagramRef = useRef(null);
const {currentScenario, currentFlowData, updateScenario} = useLoadTest(); const {currentScenario, currentFlowData, updateScenario} = useLoadTest();
const [isExecuting, setIsExecuting] = useState(false); const [isExecuting, setIsExecuting] = useState(false);
const [isConsoleVisible, setIsConsoleVisible] = useState(true);
const { const {
logs, logs,
@@ -89,6 +90,10 @@ const ScenarioEditor = () => {
clearLogs(); clearLogs();
}, [resetExecutor, clearLogs]); }, [resetExecutor, clearLogs]);
const toggleConsole = useCallback((visibility) => {
setIsConsoleVisible(visibility);
}, []);
if (!currentFlowData) { if (!currentFlowData) {
return <div className="flex items-center justify-center h-full">Select a scenario to edit</div>; return <div className="flex items-center justify-center h-full">Select a scenario to edit</div>;
} }
@@ -104,8 +109,8 @@ const ScenarioEditor = () => {
disabled={isExecuting} disabled={isExecuting}
isRunning={isRunning} isRunning={isRunning}
/> />
<div className="flex-1 min-h-0 grid grid-rows-2"> <div className="flex-1 min-h-0 flex flex-col">
<div className="min-h-0 border-b"> <div className={`${isConsoleVisible ? 'h-1/2' : 'h-full'} min-h-0 border-b`}>
<DiagramArea <DiagramArea
ref={diagramRef} ref={diagramRef}
initialNodes={currentFlowData?.nodes || []} initialNodes={currentFlowData?.nodes || []}
@@ -113,21 +118,20 @@ const ScenarioEditor = () => {
isExecuting={isExecuting} isExecuting={isExecuting}
/> />
</div> </div>
<div className="flex-1"> <div className={isConsoleVisible ? 'h-1/2' : 'h-auto'}>
<div className="flex items-center gap-2 p-1 border-b"> <div className="flex items-center gap-2 p-1 border-b">
<div>Output: </div> <div>Output:</div>
<Button <Button
variant="outline" variant="outline"
size="sm"> size="sm"
숨기기 onClick={() => toggleConsole(!isConsoleVisible)}
</Button> >
<Button {isConsoleVisible ? '숨기기' : '보이기'}
variant="outline"
size="sm">
보이기
</Button> </Button>
</div> </div>
<ConsoleArea value={logs}/> <div className="h-[calc(100%-32px)]">
<ConsoleArea value={logs} isVisible={isConsoleVisible}/>
</div>
</div> </div>
</div> </div>
</div> </div>