diff --git a/web/src/components/filter/ReviewActionGroup.tsx b/web/src/components/filter/ReviewActionGroup.tsx
index 15eddfb28..779ac757a 100644
--- a/web/src/components/filter/ReviewActionGroup.tsx
+++ b/web/src/components/filter/ReviewActionGroup.tsx
@@ -1,21 +1,18 @@
-import { LuCheckSquare, LuTrash, LuX } from "react-icons/lu";
-import {
- Tooltip,
- TooltipContent,
- TooltipProvider,
- TooltipTrigger,
-} from "../ui/tooltip";
+import { LuCheckSquare, LuFileUp, LuTrash } from "react-icons/lu";
import { useCallback } from "react";
import axios from "axios";
+import { Button } from "../ui/button";
type ReviewActionGroupProps = {
selectedReviews: string[];
setSelectedReviews: (ids: string[]) => void;
+ onExport: (id: string) => void;
pullLatestData: () => void;
};
export default function ReviewActionGroup({
selectedReviews,
setSelectedReviews,
+ onExport,
pullLatestData,
}: ReviewActionGroupProps) {
const onClearSelected = useCallback(() => {
@@ -37,36 +34,43 @@ export default function ReviewActionGroup({
}, [selectedReviews, setSelectedReviews, pullLatestData]);
return (
-
-
-
-
-
-
-
-
- Unselect All
-
-
-
-
-
-
-
-
- Mark Selected As Reviewed
-
-
|
-
-
-
-
-
-
- Delete Selected
-
-
-
+
+
{`${selectedReviews.length} selected | `}
+
+ {selectedReviews.length == 1 && (
+
+ )}
+
+
);
}
diff --git a/web/src/views/events/EventView.tsx b/web/src/views/events/EventView.tsx
index d194e156e..d5d230741 100644
--- a/web/src/views/events/EventView.tsx
+++ b/web/src/views/events/EventView.tsx
@@ -246,13 +246,29 @@ export default function EventView({
pullLatestData();
}, [currentItems, minimapBounds]);
+ const exportReview = useCallback(
+ (id: string) => {
+ const review = currentItems?.find((seg) => seg.id == id);
+
+ if (!review) {
+ return;
+ }
+
+ axios.post(
+ `export/${review.camera}/start/${review.start_time}/end/${review.end_time}`,
+ { playback: "realtime" },
+ );
+ },
+ [selectedReviews],
+ );
+
if (!config) {
return
;
}
return (
-
+
{isMobile && (
)}
@@ -290,11 +306,14 @@ export default function EventView({
Motion
-
- {selectedReviews.length > 0 && (
+
+ {selectedReviews.length <= 0 ? (
+
+ ) : (
)}