1
0
mirror of https://github.com/sasjs/server.git synced 2025-12-12 03:54:34 +00:00

fix(log): fixed single chunk scrolling

This commit is contained in:
Yury Shkoda
2023-04-18 16:16:58 +03:00
parent 8254b78955
commit 57b7f954a1
2 changed files with 52 additions and 67 deletions

View File

@@ -145,7 +145,6 @@ const LogChunk = (props: LogChunkProps) => {
</button> </button>
<div <div
style={{ style={{
padding: '0 18px',
backgroundColor: 'white', backgroundColor: 'white',
display: expanded ? 'block' : 'none', display: expanded ? 'block' : 'none',
overflow: 'hidden' overflow: 'hidden'

View File

@@ -134,6 +134,9 @@ const LogComponent = (props: LogComponentProps) => {
} }
} }
const hasErrorsOrWarnings =
logObject.errors?.length !== 0 || logObject.warnings?.length !== 0
return ( return (
<> <>
{selectedRunTime === RunTimeType.SAS && logObject.body ? ( {selectedRunTime === RunTimeType.SAS && logObject.body ? (
@@ -151,71 +154,54 @@ const LogComponent = (props: LogComponentProps) => {
gap: 10 gap: 10
}} }}
></div> ></div>
<div style={{ paddingBottom: 10 }}> {hasErrorsOrWarnings && (
<TreeView <div>
defaultCollapseIcon={<ExpandMore />} <TreeView
defaultExpandIcon={<ChevronRight />} defaultCollapseIcon={<ExpandMore />}
> defaultExpandIcon={<ChevronRight />}
{logObject.errors && logObject.errors.length !== 0 && ( style={{ paddingBottom: 10 }}
<TreeItem >
nodeId="errors" {logObject.errors && logObject.errors.length !== 0 && (
label={ <TreeItem
<Typography color="error"> nodeId="errors"
{`Errors (${logObject.errors.length})`} label={
</Typography> <Typography color="error">
} {`Errors (${logObject.errors.length})`}
> </Typography>
{logObject.errors && }
logObject.errors.map((error, ind) => ( >
<TreeItem {logObject.errors &&
nodeId={`error_${ind}`} logObject.errors.map((error, ind) => (
label={<ListItemText primary={error.body} />} <TreeItem
key={`error_${ind}`} nodeId={`error_${ind}`}
onClick={() => { label={<ListItemText primary={error.body} />}
setLogChunksState((prevState) => { key={`error_${ind}`}
const newState = [...prevState] onClick={() => goToLogLine(error, ind)}
/>
newState[ind] = true ))}
</TreeItem>
return newState )}
}) {logObject.warnings && logObject.warnings.length !== 0 && (
<TreeItem
goToLogLine(error, ind) nodeId="warnings"
}} label={
/> <Typography>{`Warnings (${logObject.warnings.length})`}</Typography>
))} }
</TreeItem> >
)} {logObject.warnings &&
{logObject.warnings && logObject.warnings.length !== 0 && ( logObject.warnings.map((warning, ind) => (
<TreeItem <TreeItem
nodeId="warnings" nodeId={`warning_${ind}`}
label={ label={<ListItemText primary={warning.body} />}
<Typography>{`Warnings (${logObject.warnings.length})`}</Typography> key={`warning_${ind}`}
} onClick={() => goToLogLine(warning, ind)}
> />
{logObject.warnings && ))}
logObject.warnings.map((warning, ind) => ( </TreeItem>
<TreeItem )}
nodeId={`warning_${ind}`} </TreeView>
label={<ListItemText primary={warning.body} />} </div>
key={`warning_${ind}`} )}
onClick={() => {
setLogChunksState((prevState) => {
const newState = [...prevState]
newState[ind] = true
return newState
})
goToLogLine(warning, ind)
}}
/>
))}
</TreeItem>
)}
</TreeView>
</div>
</div> </div>
{Array.isArray(logChunks) ? ( {Array.isArray(logChunks) ? (
@@ -227,7 +213,7 @@ const LogComponent = (props: LogComponentProps) => {
key={`log-chunk-${id}`} key={`log-chunk-${id}`}
logLineCount={logObject.linesCount} logLineCount={logObject.linesCount}
scrollToLogInstance={scrollToLogInstance} scrollToLogInstance={scrollToLogInstance}
onClick={(evt, chunkNumber) => { onClick={(_, chunkNumber) => {
setLogChunksState((prevState) => { setLogChunksState((prevState) => {
const newState = [...prevState] const newState = [...prevState]
const expand = !newState[chunkNumber] const expand = !newState[chunkNumber]