From ebe49869a5a10f8773e21d9a5e8dbfdbd20d39d1 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 5 Apr 2024 09:44:17 -0600 Subject: [PATCH] Add ability to filter by clicking item --- web/src/pages/Logs.tsx | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/web/src/pages/Logs.tsx b/web/src/pages/Logs.tsx index c516b130f..a1ad29f17 100644 --- a/web/src/pages/Logs.tsx +++ b/web/src/pages/Logs.tsx @@ -296,6 +296,10 @@ function Logs() { // eslint-disable-next-line react-hooks/exhaustive-deps }, [logLines, logService]); + // log filtering + + const [filterSeverity, setFilterSeverity] = useState(); + return (
@@ -307,6 +311,7 @@ function Logs() { onValueChange={(value: LogType) => { if (value) { setLogs([]); + setFilterSeverity(undefined); setLogService(value); } }} // don't allow the severity to be unselected @@ -371,6 +376,15 @@ function Logs() { : undefined; if (logLine) { + const line = logLines[idx - logRange.start]; + if (filterSeverity && line.severity != filterSeverity) { + return ( +
+ ); + } + return ( setFilterSeverity(line.severity)} /> ); } @@ -395,8 +410,14 @@ type LogLineDataProps = { startRef?: (node: HTMLDivElement | null) => void; className: string; line: LogLine; + onClickSeverity: () => void; }; -function LogLineData({ startRef, className, line }: LogLineDataProps) { +function LogLineData({ + startRef, + className, + line, + onClickSeverity, +}: LogLineDataProps) { // long log message const contentRef = useRef(null); @@ -422,6 +443,7 @@ function LogLineData({ startRef, className, line }: LogLineDataProps) {
{line.severity}