mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-10 21:25:24 +03:00
Add ability to filter by clicking item
This commit is contained in:
parent
9f5d555670
commit
ebe49869a5
@ -296,6 +296,10 @@ function Logs() {
|
|||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [logLines, logService]);
|
}, [logLines, logService]);
|
||||||
|
|
||||||
|
// log filtering
|
||||||
|
|
||||||
|
const [filterSeverity, setFilterSeverity] = useState<LogSeverity>();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="size-full p-2 flex flex-col">
|
<div className="size-full p-2 flex flex-col">
|
||||||
<div className="flex justify-between items-center">
|
<div className="flex justify-between items-center">
|
||||||
@ -307,6 +311,7 @@ function Logs() {
|
|||||||
onValueChange={(value: LogType) => {
|
onValueChange={(value: LogType) => {
|
||||||
if (value) {
|
if (value) {
|
||||||
setLogs([]);
|
setLogs([]);
|
||||||
|
setFilterSeverity(undefined);
|
||||||
setLogService(value);
|
setLogService(value);
|
||||||
}
|
}
|
||||||
}} // don't allow the severity to be unselected
|
}} // don't allow the severity to be unselected
|
||||||
@ -371,6 +376,15 @@ function Logs() {
|
|||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
if (logLine) {
|
if (logLine) {
|
||||||
|
const line = logLines[idx - logRange.start];
|
||||||
|
if (filterSeverity && line.severity != filterSeverity) {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
ref={idx == logRange.start + 10 ? startLogRef : undefined}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<LogLineData
|
<LogLineData
|
||||||
key={`${idx}-${logService}`}
|
key={`${idx}-${logService}`}
|
||||||
@ -378,7 +392,8 @@ function Logs() {
|
|||||||
idx == logRange.start + 10 ? startLogRef : undefined
|
idx == logRange.start + 10 ? startLogRef : undefined
|
||||||
}
|
}
|
||||||
className={initialScroll ? "" : "invisible"}
|
className={initialScroll ? "" : "invisible"}
|
||||||
line={logLines[idx - logRange.start]}
|
line={line}
|
||||||
|
onClickSeverity={() => setFilterSeverity(line.severity)}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -395,8 +410,14 @@ type LogLineDataProps = {
|
|||||||
startRef?: (node: HTMLDivElement | null) => void;
|
startRef?: (node: HTMLDivElement | null) => void;
|
||||||
className: string;
|
className: string;
|
||||||
line: LogLine;
|
line: LogLine;
|
||||||
|
onClickSeverity: () => void;
|
||||||
};
|
};
|
||||||
function LogLineData({ startRef, className, line }: LogLineDataProps) {
|
function LogLineData({
|
||||||
|
startRef,
|
||||||
|
className,
|
||||||
|
line,
|
||||||
|
onClickSeverity,
|
||||||
|
}: LogLineDataProps) {
|
||||||
// long log message
|
// long log message
|
||||||
|
|
||||||
const contentRef = useRef<HTMLDivElement | null>(null);
|
const contentRef = useRef<HTMLDivElement | null>(null);
|
||||||
@ -422,6 +443,7 @@ function LogLineData({ startRef, className, line }: LogLineDataProps) {
|
|||||||
<div className="h-full p-1 flex items-center gap-2">
|
<div className="h-full p-1 flex items-center gap-2">
|
||||||
<div
|
<div
|
||||||
className={`py-[1px] px-1 capitalize text-xs rounded-md cursor-pointer ${severityClassName}`}
|
className={`py-[1px] px-1 capitalize text-xs rounded-md cursor-pointer ${severityClassName}`}
|
||||||
|
onClick={onClickSeverity}
|
||||||
>
|
>
|
||||||
{line.severity}
|
{line.severity}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user