시나리오 콘솔 영역 수정
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user