|
1 |
| -import { useState, useEffect, useContext } from "react"; |
2 | 1 | import { Handle } from "@xyflow/react";
|
3 |
| -import Card from "react-bootstrap/Card"; |
4 |
| -import { FaSpinner } from "react-icons/fa"; |
| 2 | +import { useContext, useEffect, useState } from "react"; |
| 3 | +import Accordion from "react-bootstrap/Accordion"; |
5 | 4 | import Button from "react-bootstrap/Button";
|
| 5 | +import Card from "react-bootstrap/Card"; |
6 | 6 | import Modal from "react-bootstrap/Modal";
|
| 7 | +import { FaSpinner } from "react-icons/fa"; |
7 | 8 | import Markdown from "react-markdown";
|
8 |
| -import { GraphNode } from "./types"; |
9 | 9 | import GraphContext from "./GraphContext";
|
| 10 | +import type { GraphNode } from "./types"; |
10 | 11 |
|
11 | 12 | interface GraphStateNodeProps {
|
12 | 13 | data: {
|
@@ -143,51 +144,67 @@ function GraphStateNode({ data }: GraphStateNodeProps) {
|
143 | 144 | <Modal.Title>{data.node.id}</Modal.Title>
|
144 | 145 | </Modal.Header>
|
145 | 146 | <Modal.Body>
|
146 |
| - <Markdown> |
147 |
| - {` |
148 |
| -#### Run this Node |
| 147 | + <Accordion defaultActiveKey={["0", "1", "2", "3", "4"]} alwaysOpen> |
| 148 | + <Accordion.Item eventKey="0"> |
| 149 | + <Accordion.Header>Run this Node</Accordion.Header> |
| 150 | + <Accordion.Body> |
| 151 | + <Markdown> |
| 152 | + {` |
149 | 153 | ~~~
|
150 | 154 | paraffin worker --job ${data.node.id} --experiment ${experiment}
|
151 | 155 | ~~~
|
152 |
| -#### DVC Stage Lock |
| 156 | +`} |
| 157 | + </Markdown> |
| 158 | + </Accordion.Body> |
| 159 | + </Accordion.Item> |
| 160 | + <Accordion.Item eventKey="1"> |
| 161 | + <Accordion.Header>DVC Stage Lock</Accordion.Header> |
| 162 | + <Accordion.Body> |
| 163 | + <Markdown> |
| 164 | + {` |
153 | 165 | ~~~dict
|
154 | 166 | ${JSON.stringify(data.node.lock, null, 4)}
|
155 | 167 | ~~~
|
156 |
| -#### DVC Stage Dependencies Hash |
157 |
| -~~~ |
158 |
| -${data.node.deps_hash} |
159 |
| -~~~ |
160 | 168 | `}
|
161 |
| - {/* TODO: show node-meta.json if requested */} |
162 |
| - </Markdown> |
163 |
| - {nodeData.stdout && ( |
164 |
| - <> |
165 |
| - <h5>STDOUT</h5> |
166 |
| - <pre>{nodeData.stdout}</pre> |
167 |
| - </> |
168 |
| - )} |
169 |
| - {nodeData.stderr && ( |
170 |
| - <> |
171 |
| - <h5>STDERR</h5> |
172 |
| - <pre>{nodeData.stderr}</pre> |
173 |
| - </> |
174 |
| - )} |
175 |
| - {nodeData.worker && ( |
176 |
| - <> |
177 |
| - <h5>Worker</h5> |
178 |
| - <pre> |
179 |
| - {nodeData.worker.name}@{nodeData.worker.machine} |
180 |
| - </pre> |
181 |
| - <h5>Started At</h5> |
182 |
| - <pre>{nodeData.started_at}</pre> |
183 |
| - <h5>Finished At</h5> |
184 |
| - <pre>{nodeData.finished_at}</pre> |
185 |
| - <h5>Working Directory</h5> |
186 |
| - <pre>{nodeData.worker.cwd}</pre> |
187 |
| - <h5>PID</h5> |
188 |
| - <pre>{nodeData.worker.pid}</pre> |
189 |
| - </> |
190 |
| - )} |
| 169 | + </Markdown> |
| 170 | + </Accordion.Body> |
| 171 | + </Accordion.Item> |
| 172 | + |
| 173 | + {nodeData.stdout && ( |
| 174 | + <Accordion.Item eventKey="2"> |
| 175 | + <Accordion.Header>STDOUT</Accordion.Header> |
| 176 | + <Accordion.Body> |
| 177 | + <pre>{nodeData.stdout}</pre> |
| 178 | + </Accordion.Body> |
| 179 | + </Accordion.Item> |
| 180 | + )} |
| 181 | + {nodeData.stderr && ( |
| 182 | + <Accordion.Item eventKey="3"> |
| 183 | + <Accordion.Header>STDERR</Accordion.Header> |
| 184 | + <Accordion.Body> |
| 185 | + <pre>{nodeData.stderr}</pre> |
| 186 | + </Accordion.Body> |
| 187 | + </Accordion.Item> |
| 188 | + )} |
| 189 | + {nodeData.worker && ( |
| 190 | + <Accordion.Item eventKey="4"> |
| 191 | + <Accordion.Header>Worker</Accordion.Header> |
| 192 | + <Accordion.Body> |
| 193 | + <pre> |
| 194 | + {nodeData.worker.name}@{nodeData.worker.machine} |
| 195 | + </pre> |
| 196 | + <h5>Started At</h5> |
| 197 | + <pre>{nodeData.started_at}</pre> |
| 198 | + <h5>Finished At</h5> |
| 199 | + <pre>{nodeData.finished_at}</pre> |
| 200 | + <h5>Working Directory</h5> |
| 201 | + <pre>{nodeData.worker.cwd}</pre> |
| 202 | + <h5>PID</h5> |
| 203 | + <pre>{nodeData.worker.pid}</pre> |
| 204 | + </Accordion.Body> |
| 205 | + </Accordion.Item> |
| 206 | + )} |
| 207 | + </Accordion> |
191 | 208 | </Modal.Body>
|
192 | 209 | <Modal.Footer>
|
193 | 210 | <Button variant="secondary" onClick={handleClose}>
|
|
0 commit comments