Skip to content

Commit ba41510

Browse files
committed
Add icon in table (and update styling)
1 parent baa9dd1 commit ba41510

5 files changed

Lines changed: 64 additions & 52 deletions

File tree

src/components/LogMessages.tsx

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,53 @@
11
import React, { useState } from 'react';
22
import { createPortal } from 'react-dom';
3+
import { Issue } from '../types';
34

45
interface LogMessagesProps {
56
text: string;
6-
children: JSX.Element | JSX.Element[];
7+
issues: Issue[];
8+
type: string;
79
}
810

9-
export default function LogMessages({ text, children }: LogMessagesProps) {
11+
export default function LogMessages({ text, issues, type }: LogMessagesProps) {
1012
const [show, setShow] = useState<boolean>(false);
1113

14+
// Please make sure you check that issues.length > 0
15+
const logLevels = ["ERROR", "WARN", "INFO", "DEBUG", "TRACE", "NONE"];
16+
let logLevel = Math.min(...issues.map(issue => logLevels.indexOf(issue.level)));
17+
let logLevelText = logLevels[logLevel];
18+
1219
return (
1320
<>
14-
<a href='#' onClick={() => setShow(!show)}>
15-
{text}
16-
</a>
21+
<span onClick={() => setShow(!show)}>
22+
<div className='log-label-container'>
23+
<span className={`log-label ${logLevelText}`}>{logLevelText.slice(0, 1)}</span>
24+
</div>
25+
<a href='#'>
26+
{text}
27+
</a>
28+
</span>
1729
{createPortal(
18-
<div
19-
className={`log-overlay ${show ? 'visible' : 'hidden'}`}
20-
onClick={() => setShow(false)}
21-
>
22-
<div className="bar">{show && children}</div>
23-
</div>,
30+
<>
31+
<div
32+
className={`log-overlay ${show ? 'visible' : 'hidden'}`}
33+
onClick={() => setShow(false)}
34+
>
35+
<div className="bar">{show && <>
36+
<h2>{type} log messages</h2>
37+
<div className='log-messages'>
38+
{issues.map(issue => <div className=''>
39+
<div className='log-label-container'>
40+
<span className={`log-label ${issue.level}`}>{issue.level}</span>
41+
</div>
42+
<span className='message'>{issue.messages}</span>
43+
</div>)}
44+
</div>
45+
</>}
46+
</div>
47+
</div>
48+
</>,
2449
document.body,
25-
'help'
50+
'log-messages'
2651
)}
2752
</>
2853
);

src/components/connections/RrdpTable.tsx

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,11 @@ export default function RrdpTable() {
6060
{values.map(([key, rrdp]: [string, Rrdp]) => (
6161
<tr key={key}>
6262
<th role="column" title={key}>
63-
{!rrdp.issues && <span>{key}</span>}
64-
{rrdp.issues && <LogMessages text={key}>
65-
<h2>RRDP log messages</h2>
66-
<table className='log-messages'>
67-
<tbody>
68-
{rrdp.issues.map(issue => <tr>
69-
<td><span className={`label ${issue.level}`}>{issue.level}</span></td>
70-
<td><span className='message'>{issue.messages}</span></td>
71-
</tr>)}
72-
</tbody>
73-
</table>
74-
</LogMessages>}
63+
{rrdp.issues.length == 0 && <span>{key}</span>}
64+
{rrdp.issues.length > 0 && <LogMessages
65+
text={key}
66+
issues={rrdp.issues}
67+
type='RRDP' />}
7568
</th>
7669
<td>
7770
<Duration value={rrdp.duration} max={maxDuration} />

src/components/connections/RsyncTable.tsx

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,11 @@ export default function RsyncTable() {
5353
([key, rsync]: [string, Rsync]) => (
5454
<tr key={key}>
5555
<th role="column" title={key}>
56-
{!rsync.issues && <span>{key}</span>}
57-
{rsync.issues && <LogMessages text={key}>
58-
<h2>rsync log messages</h2>
59-
<table className='log-messages'>
60-
<tbody>
61-
{rsync.issues.map(issue => <tr>
62-
<td><span className={`label ${issue.level}`}>{issue.level}</span></td>
63-
<td><span className='message'>{issue.messages}</span></td>
64-
</tr>)}
65-
</tbody>
66-
</table>
67-
</LogMessages>}
56+
{rsync.issues.length == 0 && <span>{key}</span>}
57+
{rsync.issues.length > 0 && <LogMessages
58+
text={key}
59+
issues={rsync.issues}
60+
type='rsync' />}
6861
</th>
6962
<td>
7063
<Duration value={rsync.duration} max={maxDuration} />

src/style/log-messages.css

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -62,42 +62,43 @@
6262
width: 100%;
6363
}
6464

65-
.log-messages td {
66-
padding: 0.2rem;
65+
.log-messages div {
66+
padding: 0.1rem 0;
6767
}
6868

69-
.log-messages td:first-child {
70-
text-align: right;
71-
width: 1%;
69+
.log-label {
70+
border-radius: 0.3rem;
71+
padding: 0.2rem 0.4rem;
72+
font-weight: bold;
73+
font-family: monospace, monospace;
7274
}
7375

74-
.log-messages .label {
75-
border-radius: 0.2rem;
76-
padding: 0.2rem;
77-
font-weight: bold;
76+
.log-label-container {
77+
display: inline-block;
78+
margin-right: 0.5rem;
7879
}
7980

80-
.log-messages .label.TRACE {
81+
.log-label.TRACE {
8182
background-color: white;
8283
color: black;
8384
}
8485

85-
.log-messages .label.DEBUG {
86-
background-color: white;
86+
.log-label.DEBUG {
87+
background-color: #EEEEEE;
8788
color: black;
8889
}
8990

90-
.log-messages .label.INFO {
91+
.log-label.INFO {
9192
background-color: #1976D2;
9293
color: white;
9394
}
9495

95-
.log-messages .label.WARN {
96+
.log-label.WARN {
9697
background-color: #FFA000;
9798
color: white;
9899
}
99100

100-
.log-messages .label.ERROR {
101+
.log-label.ERROR {
101102
background-color: #E64A19;
102103
color: white;
103104
}

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export interface Rrdp {
9090
session?: null | string;
9191
delta?: boolean;
9292
snapshot_reason?: null;
93-
issues?: Issue[];
93+
issues: Issue[];
9494
}
9595

9696
export interface Rsync {

0 commit comments

Comments
 (0)