UNPKG

datajunction-ui

Version:

DataJunction Metrics Platform UI

173 lines (171 loc) 4.79 kB
import { Light as SyntaxHighlighter } from 'react-syntax-highlighter'; import { solarizedDark } from 'react-syntax-highlighter/src/styles/hljs'; import React from 'react'; export default function QueryInfo({ id, state, engine_name, engine_version, errors, links, output_table, scheduled, started, finished, numRows, isList = false, }) { return isList === false ? ( <div className="table-responsive"> <table className="card-inner-table table"> <thead className="fs-7 fw-bold text-gray-400 border-bottom-0"> <tr> <th>Query ID</th> <th>Engine</th> <th>State</th> <th>Scheduled</th> <th>Started</th> <th>Errors</th> <th>Links</th> <th>Output Table</th> <th>Number of Rows</th> </tr> </thead> <tbody> <tr> <td> <span className="rounded-pill badge bg-secondary-soft">{id}</span> </td> <td> <span className="rounded-pill badge bg-secondary-soft"> {engine_name} {' - '} {engine_version} </span> </td> <td>{state}</td> <td>{scheduled}</td> <td>{started}</td> <td> {errors?.length ? ( errors.map((e, idx) => ( <p key={`error-${idx}`}> <span className="rounded-pill badge bg-secondary-error"> {e} </span> </p> )) ) : ( <></> )} </td> <td> {links?.length ? ( links.map((link, idx) => ( <p key={idx}> <a href={link} target="_blank" rel="noreferrer"> {link} </a> </p> )) ) : ( <></> )} </td> <td>{output_table}</td> <td>{numRows}</td> </tr> </tbody> </table> </div> ) : ( <div className="rightbottom"> <ul style={{ padding: '20px' }}> <li className={'query-info'}> <label>Query ID</label>{' '} <span className="tag_value rounded-pill badge"> {links?.length ? ( <a href={links[links.length - 1]} target={'_blank'} rel="noreferrer" > {id} </a> ) : ( id )} </span> </li> <li className={'query-info'}> <label>State</label> <span className="tag_value rounded-pill badge">{state}</span> </li> <li className={'query-info'}> <label>Engine</label>{' '} <span className="tag_value rounded-pill badge"> {engine_name} {' - '} {engine_version} </span> </li> <li className={'query-info'}> <label>Scheduled</label> {scheduled} </li> <li className={'query-info'}> <label>Started</label> {started} </li> <li className={'query-info'}> <label>Finished</label> {finished} </li> <li className={'query-info'}> <label>Logs</label>{' '} {errors?.length ? ( errors.map(error => ( <div style={{ height: '800px', width: '80%', overflow: 'scroll', borderRadius: '0', border: '1px solid #ccc', }} className="queryrunner-query" > <SyntaxHighlighter language="javascript" style={solarizedDark} wrapLines={true} > {error} </SyntaxHighlighter> </div> )) ) : ( <></> )} </li> <li className={'query-info'}> <label>Links:</label>{' '} {links?.length ? ( links.map((link, idx) => ( <p key={idx}> <a href={link} target="_blank" rel="noreferrer"> {link} </a> </p> )) ) : ( <></> )} </li> <li className={'query-info'}> <label>Output Table:</label> {output_table} </li> <li className={'query-info'}> <label>Rows:</label> {numRows} </li> </ul> </div> ); }