diff --git a/web/src/components/filter/CameraGroupSelector.tsx b/web/src/components/filter/CameraGroupSelector.tsx index 0b38bb713..2f3628088 100644 --- a/web/src/components/filter/CameraGroupSelector.tsx +++ b/web/src/components/filter/CameraGroupSelector.tsx @@ -568,7 +568,7 @@ export function CameraGroupEdit({ /> -
+
{ + const now = new Date(latestTime * 1000); + let start = 0; + now.setHours(now.getHours() - 1); + start = now.getTime() / 1000; + setRange({ + before: latestTime, + after: start, + }); setMode("select"); }} > diff --git a/web/src/components/player/PreviewThumbnailPlayer.tsx b/web/src/components/player/PreviewThumbnailPlayer.tsx index c36a2e129..97e96713c 100644 --- a/web/src/components/player/PreviewThumbnailPlayer.tsx +++ b/web/src/components/player/PreviewThumbnailPlayer.tsx @@ -24,6 +24,7 @@ import ActivityIndicator from "../indicators/activity-indicator"; import { TimeRange } from "@/types/timeline"; import { NoThumbSlider } from "../ui/slider"; import { PREVIEW_FPS, PREVIEW_PADDING } from "@/types/preview"; +import { capitalizeFirstLetter } from "@/utils/stringUtil"; type PreviewPlayerProps = { review: ReviewSegment; @@ -263,7 +264,7 @@ export default function PreviewThumbnailPlayer({ .filter( (item) => item !== undefined && !item.includes("-verified"), ) - .map((text) => text.charAt(0).toUpperCase() + text.substring(1)) + .map((text) => capitalizeFirstLetter(text)) .sort() .join(", ") .replaceAll("-verified", "")} diff --git a/web/src/pages/SubmitPlus.tsx b/web/src/pages/SubmitPlus.tsx index f51ad514d..e2863760a 100644 --- a/web/src/pages/SubmitPlus.tsx +++ b/web/src/pages/SubmitPlus.tsx @@ -3,6 +3,7 @@ import { CamerasFilterButton, GeneralFilterContent, } from "@/components/filter/ReviewFilterGroup"; +import Chip from "@/components/indicators/Chip"; import { Button } from "@/components/ui/button"; import { Dialog, @@ -23,8 +24,15 @@ import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import { DualThumbSlider } from "@/components/ui/slider"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/components/ui/tooltip"; import { Event } from "@/types/event"; import { ATTRIBUTE_LABELS, FrigateConfig } from "@/types/frigateConfig"; +import { getIconForLabel } from "@/utils/iconUtil"; +import { capitalizeFirstLetter } from "@/utils/stringUtil"; import axios from "axios"; import { useCallback, useEffect, useMemo, useState } from "react"; import { isMobile } from "react-device-detect"; @@ -182,9 +190,36 @@ export default function SubmitPlus() { return (
setUpload(event)} > +
+ +
+ +
+ + {[event.label].map((object) => { + return getIconForLabel( + object, + "size-3 text-white", + ); + })} + +
+
+
+ + {[event.label] + .map((text) => capitalizeFirstLetter(text)) + .sort() + .join(", ") + .replaceAll("-verified", "")} + +
+