onPlayback(true)}
- onMouseLeave={isMobile ? undefined : () => onPlayback(false)}
- onClick={handleOnClick}
- {...swipeHandlers}
- >
- {playingBack && (
-
- )}
-
-
-

{
- onImgLoad();
- }}
- />
-
- {!playingBack && (
- <>
-
-
- {(review.severity == "alert" ||
- review.severity == "detection") && (
-
- {review.data.objects.map((object) => {
- return getIconForLabel(object, "size-3 text-white");
- })}
- {review.data.audio.map((audio) => {
- return getIconForLabel(audio, "size-3 text-white");
- })}
- {review.data.sub_labels?.map((sub) => {
- return getIconForSubLabel(sub, "size-3 text-white");
- })}
-
- )}
-
-
-
-
-
- {formattedDate}
-
-
- >
- )}
-
- {!playingBack && imgLoaded && review.has_been_reviewed && (
-
- )}
+
onPlayback(true)}
+ onMouseLeave={isMobile ? undefined : () => onPlayback(false)}
+ onContextMenu={(e) => {
+ e.preventDefault();
+ onClick(review.id, true);
+ }}
+ onClick={handleOnClick}
+ {...swipeHandlers}
+ >
+ {playingBack && (
+
-
-
onClick(review.id, true)}
- setReviewed={handleSetReviewed}
- markAboveReviewed={markAboveReviewed}
- />
-
+ )}
+
+
+

{
+ onImgLoad();
+ }}
+ />
+
+ {!playingBack && (
+ <>
+
+
+ {(review.severity == "alert" ||
+ review.severity == "detection") && (
+
+ {review.data.objects.map((object) => {
+ return getIconForLabel(object, "size-3 text-white");
+ })}
+ {review.data.audio.map((audio) => {
+ return getIconForLabel(audio, "size-3 text-white");
+ })}
+ {review.data.sub_labels?.map((sub) => {
+ return getIconForSubLabel(sub, "size-3 text-white");
+ })}
+
+ )}
+
+
+
+
+
+ {formattedDate}
+
+
+ >
+ )}
+
+ {!playingBack && imgLoaded && review.has_been_reviewed && (
+
+ )}
+
);
}
@@ -613,71 +592,6 @@ function InProgressPreview({
);
}
-type PreviewContextItemsProps = {
- review: ReviewSegment;
- onSelect: () => void;
- setReviewed: () => void;
- markAboveReviewed: () => void;
-};
-function PreviewContextItems({
- review,
- onSelect,
- setReviewed,
- markAboveReviewed,
-}: PreviewContextItemsProps) {
- const exportReview = useCallback(() => {
- axios.post(
- `export/${review.camera}/start/${review.start_time}/end/${review.end_time}`,
- { playback: "realtime" },
- );
- }, [review]);
-
- const deleteReview = useCallback(() => {
- axios.delete(`reviews/${review.id}`);
- }, [review]);
-
- return (
-
- {isMobile && (
-
-
- Select
-
-
-
- )}
-
-
- Mark Above as Reviewed
-
-
-
-
- {!review.has_been_reviewed && (
- (setReviewed ? setReviewed() : null)}>
-
- Mark As Reviewed
-
-
-
- )}
-
-
- Export
-
-
-
-
-
-
- Delete
-
-
-
-
- );
-}
-
function PreviewPlaceholder({ imgLoaded }: { imgLoaded: boolean }) {
if (imgLoaded) {
return;
diff --git a/web/src/views/events/EventView.tsx b/web/src/views/events/EventView.tsx
index d194e156e..9889a6d6c 100644
--- a/web/src/views/events/EventView.tsx
+++ b/web/src/views/events/EventView.tsx
@@ -223,28 +223,21 @@ export default function EventView({
[selectedReviews, setSelectedReviews],
);
- const markScrolledItemsAsReviewed = useCallback(async () => {
- if (!currentItems) {
- return;
- }
+ const exportReview = useCallback(
+ (id: string) => {
+ const review = currentItems?.find((seg) => seg.id == id);
- const scrolled: string[] = [];
-
- currentItems.find((value) => {
- if (value.start_time > minimapBounds.end) {
- scrolled.push(value.id);
- return false;
- } else {
- return true;
+ if (!review) {
+ return;
}
- });
- const idList = scrolled.join(",");
-
- await axios.post(`reviews/${idList}/viewed`);
- setSelectedReviews([]);
- pullLatestData();
- }, [currentItems, minimapBounds]);
+ axios.post(
+ `export/${review.camera}/start/${review.start_time}/end/${review.end_time}`,
+ { playback: "realtime" },
+ );
+ },
+ [selectedReviews],
+ );
if (!config) {
return
;
@@ -252,7 +245,7 @@ export default function EventView({
return (
-
+
{isMobile && (
)}
@@ -290,11 +283,14 @@ export default function EventView({
Motion
-
- {selectedReviews.length > 0 && (
+
+ {selectedReviews.length <= 0 ? (
+
+ ) : (
)}
@@ -347,7 +343,6 @@ export default function EventView({
allPreviews={relevantPreviews}
setReviewed={markItemAsReviewed}
onTimeUpdate={setPreviewTime}
- markAboveReviewed={markScrolledItemsAsReviewed}
onClick={onSelectReview}
/>