feat: Added visual separation between global and node or handle specific warnings

ref: N25B-450
This commit is contained in:
JGerla
2026-01-20 12:50:29 +01:00
parent 5d55ebaaa2
commit 3f6d95683d
2 changed files with 49 additions and 4 deletions

View File

@@ -38,6 +38,10 @@
border: 2px solid currentColor; border: 2px solid currentColor;
} }
.warning-group-header {
background: ButtonFace;
}
.warnings-list { .warnings-list {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;

View File

@@ -19,6 +19,9 @@ export function WarningsSidebar() {
? warnings ? warnings
: warnings.filter(w => w.severity === severityFilter); : warnings.filter(w => w.severity === severityFilter);
return ( return (
<aside className={styles.warningsSidebar}> <aside className={styles.warningsSidebar}>
<WarningsHeader <WarningsHeader
@@ -67,6 +70,11 @@ function WarningsHeader({
function WarningsList(props: { warnings: EditorWarning[] }) { function WarningsList(props: { warnings: EditorWarning[] }) {
const splitWarnings = {
global: props.warnings.filter(w => w.scope.id === globalWarning),
other: props.warnings.filter(w => w.scope.id !== globalWarning),
}
if (props.warnings.length === 0) { if (props.warnings.length === 0) {
return ( return (
<div className={styles.warningsEmpty}> <div className={styles.warningsEmpty}>
@@ -74,11 +82,44 @@ function WarningsList(props: { warnings: EditorWarning[] }) {
</div> </div>
) )
} }
if (splitWarnings.global.length === 0) {
return (
<div>
<div className={"warningGroup"}>
<div className={styles.warningGroupHeader}>global:</div>
<div className={styles.warningsEmpty}>
No global warnings!
</div>
</div>
<div className={"warningGroup"}>
<div className={styles.warningGroupHeader}>other:</div>
<div className={styles.warningsList}>
{splitWarnings.other.map((warning) => (
<WarningListItem warning={warning} />
))}
</div>
</div>
</div>
);
}
return ( return (
<div className={styles.warningsList}> <div>
{props.warnings.map((warning) => ( <div className={"warningGroup"}>
<WarningListItem warning={warning} /> <div className={styles.warningGroupHeader}>global:</div>
))} <div className={styles.warningsList}>
{splitWarnings.global.map((warning) => (
<WarningListItem warning={warning} />
))}
</div>
</div>
<div className={"warningGroup"}>
<div className={styles.warningGroupHeader}>other:</div>
<div className={styles.warningsList}>
{splitWarnings.other.map((warning) => (
<WarningListItem warning={warning} />
))}
</div>
</div>
</div> </div>
); );
} }