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 ? ( + + ) : ( )}