mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-12-21 12:36:42 +03:00
Compare commits
1 Commits
7edc36dbd4
...
84a21546c3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
84a21546c3 |
@ -221,26 +221,12 @@ export function TrackingDetails({
|
|||||||
displaySource,
|
displaySource,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const isWithinEventRange = useMemo(() => {
|
const isWithinEventRange =
|
||||||
if (effectiveTime === undefined || event.start_time === undefined) {
|
effectiveTime !== undefined &&
|
||||||
return false;
|
event.start_time !== undefined &&
|
||||||
}
|
event.end_time !== undefined &&
|
||||||
|
effectiveTime >= event.start_time &&
|
||||||
// If an event has not ended yet, fall back to last timestamp in eventSequence
|
effectiveTime <= event.end_time;
|
||||||
let eventEnd = event.end_time;
|
|
||||||
if (eventEnd == null && eventSequence && eventSequence.length > 0) {
|
|
||||||
const last = eventSequence[eventSequence.length - 1];
|
|
||||||
if (last && last.timestamp !== undefined) {
|
|
||||||
eventEnd = last.timestamp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (eventEnd == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return effectiveTime >= event.start_time && effectiveTime <= eventEnd;
|
|
||||||
}, [effectiveTime, event.start_time, event.end_time, eventSequence]);
|
|
||||||
|
|
||||||
// Calculate how far down the blue line should extend based on effectiveTime
|
// Calculate how far down the blue line should extend based on effectiveTime
|
||||||
const calculateLineHeight = useCallback(() => {
|
const calculateLineHeight = useCallback(() => {
|
||||||
|
|||||||
@ -318,7 +318,6 @@ export default function HlsVideoPlayer({
|
|||||||
{isDetailMode &&
|
{isDetailMode &&
|
||||||
camera &&
|
camera &&
|
||||||
currentTime &&
|
currentTime &&
|
||||||
loadedMetadata &&
|
|
||||||
videoDimensions.width > 0 &&
|
videoDimensions.width > 0 &&
|
||||||
videoDimensions.height > 0 && (
|
videoDimensions.height > 0 && (
|
||||||
<div className="absolute z-50 size-full">
|
<div className="absolute z-50 size-full">
|
||||||
|
|||||||
@ -15,7 +15,6 @@ import {
|
|||||||
ReviewSummary,
|
ReviewSummary,
|
||||||
SegmentedReviewData,
|
SegmentedReviewData,
|
||||||
} from "@/types/review";
|
} from "@/types/review";
|
||||||
import { TimelineType } from "@/types/timeline";
|
|
||||||
import {
|
import {
|
||||||
getBeginningOfDayTimestamp,
|
getBeginningOfDayTimestamp,
|
||||||
getEndOfDayTimestamp,
|
getEndOfDayTimestamp,
|
||||||
@ -50,16 +49,6 @@ export default function Events() {
|
|||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
|
||||||
const [notificationTab, setNotificationTab] =
|
|
||||||
useState<TimelineType>("timeline");
|
|
||||||
|
|
||||||
useSearchEffect("tab", (tab: string) => {
|
|
||||||
if (tab === "timeline" || tab === "events" || tab === "detail") {
|
|
||||||
setNotificationTab(tab as TimelineType);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
useSearchEffect("id", (reviewId: string) => {
|
useSearchEffect("id", (reviewId: string) => {
|
||||||
axios
|
axios
|
||||||
.get(`review/${reviewId}`)
|
.get(`review/${reviewId}`)
|
||||||
@ -77,7 +66,7 @@ export default function Events() {
|
|||||||
camera: resp.data.camera,
|
camera: resp.data.camera,
|
||||||
startTime,
|
startTime,
|
||||||
severity: resp.data.severity,
|
severity: resp.data.severity,
|
||||||
timelineType: notificationTab,
|
timelineType: "detail",
|
||||||
},
|
},
|
||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import { ReviewSeverity } from "./review";
|
import { ReviewSeverity } from "./review";
|
||||||
import { TimelineType } from "./timeline";
|
|
||||||
|
|
||||||
export type Recording = {
|
export type Recording = {
|
||||||
id: string;
|
id: string;
|
||||||
@ -38,7 +37,7 @@ export type RecordingStartingPoint = {
|
|||||||
camera: string;
|
camera: string;
|
||||||
startTime: number;
|
startTime: number;
|
||||||
severity: ReviewSeverity;
|
severity: ReviewSeverity;
|
||||||
timelineType?: TimelineType;
|
timelineType?: "timeline" | "events" | "detail";
|
||||||
};
|
};
|
||||||
|
|
||||||
export type RecordingPlayerError = "stalled" | "startup";
|
export type RecordingPlayerError = "stalled" | "startup";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user