diff --git a/web/src/components/card/AnimatedEventCard.tsx b/web/src/components/card/AnimatedEventCard.tsx
index 8ee4acdcf..fd8096ebc 100644
--- a/web/src/components/card/AnimatedEventCard.tsx
+++ b/web/src/components/card/AnimatedEventCard.tsx
@@ -135,11 +135,13 @@ export function AnimatedEventCard({
- window
- .open(`${baseUrl}review?id=${event.id}`, "_blank")
- ?.focus()
- }
+ onAuxClick={(e) => {
+ if (e.button === 1) {
+ window
+ .open(`${baseUrl}review?id=${event.id}`, "_blank")
+ ?.focus();
+ }
+ }}
>
{!alertVideos ? (
![]()
shareOrCopy(
- `${baseUrl}exports?id=${exportedRecording.id}`,
+ `${baseUrl}export?id=${exportedRecording.id}`,
exportedRecording.name.replaceAll("_", " "),
)
}
diff --git a/web/src/components/filter/CamerasFilterButton.tsx b/web/src/components/filter/CamerasFilterButton.tsx
index 1b36102b8..da188b5d7 100644
--- a/web/src/components/filter/CamerasFilterButton.tsx
+++ b/web/src/components/filter/CamerasFilterButton.tsx
@@ -1,6 +1,6 @@
import { Button } from "../ui/button";
import { CameraGroupConfig } from "@/types/frigateConfig";
-import { useMemo, useState } from "react";
+import { useEffect, useMemo, useState } from "react";
import {
DropdownMenu,
DropdownMenuContent,
@@ -53,6 +53,17 @@ export function CamerasFilterButton({
}`;
}, [allCamerasSelected, currentCameras]);
+ // ui
+
+ useEffect(() => {
+ setCurrentCameras(
+ selectedCameras === undefined ? [...allCameras] : selectedCameras,
+ );
+ setAllCamerasSelected(selectedCameras === undefined);
+ // only refresh when state changes
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [selectedCameras]);
+
const trigger = (