diff --git a/web/src/components/filter/ReviewActionGroup.tsx b/web/src/components/filter/ReviewActionGroup.tsx
index 779ac757a..1453792f8 100644
--- a/web/src/components/filter/ReviewActionGroup.tsx
+++ b/web/src/components/filter/ReviewActionGroup.tsx
@@ -2,6 +2,7 @@ import { LuCheckSquare, LuFileUp, LuTrash } from "react-icons/lu";
import { useCallback } from "react";
import axios from "axios";
import { Button } from "../ui/button";
+import { isDesktop } from "react-device-detect";
type ReviewActionGroupProps = {
selectedReviews: string[];
@@ -34,43 +35,47 @@ export default function ReviewActionGroup({
}, [selectedReviews, setSelectedReviews, pullLatestData]);
return (
-
-
{`${selectedReviews.length} selected | `}
-
- {selectedReviews.length == 1 && (
+
+
+
{`${selectedReviews.length} selected | `}
+
+
+
+ {selectedReviews.length == 1 && (
+
+ )}
- )}
-
-
+
+
);
}
diff --git a/web/src/components/player/PreviewThumbnailPlayer.tsx b/web/src/components/player/PreviewThumbnailPlayer.tsx
index 980773242..5a8dacedd 100644
--- a/web/src/components/player/PreviewThumbnailPlayer.tsx
+++ b/web/src/components/player/PreviewThumbnailPlayer.tsx
@@ -13,18 +13,8 @@ import { getIconForLabel, getIconForSubLabel } from "@/utils/iconUtil";
import TimeAgo from "../dynamic/TimeAgo";
import useSWR from "swr";
import { FrigateConfig } from "@/types/frigateConfig";
-import { isDesktop, isFirefox, isMobile, isSafari } from "react-device-detect";
+import { isFirefox, isMobile, isSafari } from "react-device-detect";
import Chip from "../Chip";
-import {
- ContextMenu,
- ContextMenuContent,
- ContextMenuItem,
- ContextMenuSeparator,
- ContextMenuTrigger,
-} from "../ui/context-menu";
-import { LuCheckCheck, LuCheckSquare, LuFileUp, LuTrash } from "react-icons/lu";
-import { RiCheckboxMultipleLine } from "react-icons/ri";
-import axios from "axios";
import { useFormattedTimestamp } from "@/hooks/use-date-utils";
import useImageLoaded from "@/hooks/use-image-loaded";
import { Skeleton } from "../ui/skeleton";
@@ -35,7 +25,6 @@ type PreviewPlayerProps = {
allPreviews?: Preview[];
onTimeUpdate?: React.Dispatch
>;
setReviewed: (reviewId: string) => void;
- markAboveReviewed: () => void;
onClick: (reviewId: string, ctrl: boolean) => void;
};
@@ -51,7 +40,6 @@ export default function PreviewThumbnailPlayer({
review,
allPreviews,
setReviewed,
- markAboveReviewed,
onClick,
onTimeUpdate,
}: PreviewPlayerProps) {
@@ -166,19 +154,15 @@ export default function PreviewThumbnailPlayer({
config?.ui.time_format == "24hour" ? "%b %-d, %H:%M" : "%b %-d, %I:%M %p",
);
- const previewContent = (
+ return (
onPlayback(true)}
onMouseLeave={isMobile ? undefined : () => onPlayback(false)}
- onContextMenu={
- isDesktop
- ? undefined
- : (e) => {
- e.preventDefault();
- onClick(review.id, true);
- }
- }
+ onContextMenu={(e) => {
+ e.preventDefault();
+ onClick(review.id, true);
+ }}
onClick={handleOnClick}
{...swipeHandlers}
>
@@ -242,22 +226,6 @@ export default function PreviewThumbnailPlayer({
)}
);
-
- if (isDesktop) {
- return (
-
- {previewContent}
- onClick(review.id, true)}
- setReviewed={handleSetReviewed}
- markAboveReviewed={markAboveReviewed}
- />
-
- );
- }
-
- return previewContent;
}
type PreviewContentProps = {
@@ -624,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 d5d230741..9889a6d6c 100644
--- a/web/src/views/events/EventView.tsx
+++ b/web/src/views/events/EventView.tsx
@@ -223,29 +223,6 @@ export default function EventView({
[selectedReviews, setSelectedReviews],
);
- const markScrolledItemsAsReviewed = useCallback(async () => {
- if (!currentItems) {
- return;
- }
-
- const scrolled: string[] = [];
-
- currentItems.find((value) => {
- if (value.start_time > minimapBounds.end) {
- scrolled.push(value.id);
- return false;
- } else {
- return true;
- }
- });
-
- const idList = scrolled.join(",");
-
- await axios.post(`reviews/${idList}/viewed`);
- setSelectedReviews([]);
- pullLatestData();
- }, [currentItems, minimapBounds]);
-
const exportReview = useCallback(
(id: string) => {
const review = currentItems?.find((seg) => seg.id == id);
@@ -366,7 +343,6 @@ export default function EventView({
allPreviews={relevantPreviews}
setReviewed={markItemAsReviewed}
onTimeUpdate={setPreviewTime}
- markAboveReviewed={markScrolledItemsAsReviewed}
onClick={onSelectReview}
/>