diff --git a/web/src/pages/Logs.tsx b/web/src/pages/Logs.tsx index 5e9bd3e1b..ece1501af 100644 --- a/web/src/pages/Logs.tsx +++ b/web/src/pages/Logs.tsx @@ -20,6 +20,7 @@ import ActivityIndicator from "@/components/indicators/activity-indicator"; import { cn } from "@/lib/utils"; import { MdVerticalAlignBottom } from "react-icons/md"; import { parseLogLines } from "@/utils/logUtil"; +import useKeyboardListener from "@/hooks/use-keyboard-listener"; type LogRange = { start: number; end: number }; @@ -226,6 +227,40 @@ function Logs() { const [selectedLog, setSelectedLog] = useState(); + // interaction + + useKeyboardListener( + ["PageDown", "PageUp", "ArrowDown", "ArrowUp"], + (key, down, _) => { + if (!down) { + return; + } + + switch (key) { + case "PageDown": + contentRef.current?.scrollBy({ + top: 480, + }); + break; + case "PageUp": + contentRef.current?.scrollBy({ + top: -480, + }); + break; + case "ArrowDown": + contentRef.current?.scrollBy({ + top: 48, + }); + break; + case "ArrowUp": + contentRef.current?.scrollBy({ + top: -48, + }); + break; + } + }, + ); + return (