diff --git a/docs/docs/configuration/review.md b/docs/docs/configuration/review.md
index 9f160c9487..00b18219ce 100644
--- a/docs/docs/configuration/review.md
+++ b/docs/docs/configuration/review.md
@@ -153,7 +153,7 @@ Clicking a preview clip seeks the recording player to that timestamp so you can
Motion Search lets you scan recorded footage for changes inside a region of interest you draw on the camera. Unlike Motion Previews, which surfaces what Frigate's motion detector flagged in real time, Motion Search re-analyzes the saved recordings, so it can find changes that were missed (for example, an object that appeared while motion detection was paused by `lightning_threshold`, or in a region that is normally motion-masked).
-To start a search, click the kebab menu on a camera in the page and choose **Motion Search**. In the dialog:
+To start a search, open the Actions menu in History or click the kebab menu on a camera in the page and choose **Motion Search**. In the dialog:
1. Pick the camera and time range to scan.
2. Draw a polygon on the camera frame to define the region of interest.
@@ -170,3 +170,21 @@ To start a search, click the kebab menu on a camera in the {
if (!selectedCamera) return undefined;
return config.cameras[selectedCamera];
}, [config, selectedCamera]);
+ const aspectRatio = useMemo(() => {
+ if (!cameraConfig) {
+ return 16 / 9;
+ }
+
+ return cameraConfig.detect.width / cameraConfig.detect.height;
+ }, [cameraConfig]);
+
+ // Determine camera aspect ratio category
+ const cameraAspect = useMemo(() => {
+ if (!aspectRatio) {
+ return "normal";
+ } else if (aspectRatio > ASPECT_WIDE_LAYOUT) {
+ return "wide";
+ } else if (aspectRatio < ASPECT_PORTRAIT_LAYOUT) {
+ return "tall";
+ } else {
+ return "normal";
+ }
+ }, [aspectRatio]);
+
const polygonClosed = useMemo(
() => !isDrawingROI && polygonPoints.length >= 3,
[isDrawingROI, polygonPoints.length],
@@ -144,6 +168,7 @@ export default function MotionSearchDialog({
useEffect(() => {
setImageLoaded(false);
+ setPanMode(false);
}, [selectedCamera]);
const Overlay = isDesktop ? Dialog : Drawer;
@@ -218,7 +243,13 @@ export default function MotionSearchDialog({
)}
-
+