forked from Github/frigate
Improve review mqtt topic (#11072)
* Don't request preview for current hour and fix content type * Send before / after on messages * Send before / after for end * Handle specific cases * remove log * Fix update type
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
InProgressPreview,
|
||||
VideoPreview,
|
||||
} from "../player/PreviewThumbnailPlayer";
|
||||
import { isCurrentHour } from "@/utils/dateUtil";
|
||||
|
||||
type AnimatedEventCardProps = {
|
||||
event: ReviewSegment;
|
||||
@@ -19,10 +20,14 @@ type AnimatedEventCardProps = {
|
||||
export function AnimatedEventCard({ event }: AnimatedEventCardProps) {
|
||||
const { data: config } = useSWR<FrigateConfig>("config");
|
||||
|
||||
const currentHour = useMemo(() => isCurrentHour(event.start_time), [event]);
|
||||
|
||||
// preview
|
||||
|
||||
const { data: previews } = useSWR<Preview[]>(
|
||||
`/preview/${event.camera}/start/${Math.round(event.start_time)}/end/${Math.round(event.end_time || event.start_time + 20)}`,
|
||||
currentHour
|
||||
? null
|
||||
: `/preview/${event.camera}/start/${Math.round(event.start_time)}/end/${Math.round(event.end_time || event.start_time + 20)}`,
|
||||
);
|
||||
|
||||
// interaction
|
||||
|
||||
@@ -31,7 +31,8 @@ type FrigateObjectState = {
|
||||
|
||||
export interface FrigateReview {
|
||||
type: "new" | "update" | "end";
|
||||
review: ReviewSegment;
|
||||
before: ReviewSegment;
|
||||
after: ReviewSegment;
|
||||
}
|
||||
|
||||
export interface FrigateEvent {
|
||||
|
||||
@@ -47,8 +47,19 @@ export default function LiveDashboardView({
|
||||
}
|
||||
|
||||
// if event is ended and was saved, update events list
|
||||
if (eventUpdate.review.severity == "alert") {
|
||||
setTimeout(() => updateEvents(), eventUpdate.type == "end" ? 1000 : 6000);
|
||||
if (eventUpdate.after.severity == "alert") {
|
||||
if (eventUpdate.type == "end" || eventUpdate.type == "new") {
|
||||
setTimeout(
|
||||
() => updateEvents(),
|
||||
eventUpdate.type == "end" ? 1000 : 6000,
|
||||
);
|
||||
} else if (
|
||||
eventUpdate.before.data.objects.length <
|
||||
eventUpdate.after.data.objects.length
|
||||
) {
|
||||
setTimeout(() => updateEvents(), 5000);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}, [eventUpdate, updateEvents]);
|
||||
|
||||
Reference in New Issue
Block a user