mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-07-14 16:01:13 +03:00
fix video playback stutter when GenAI dialog is open in detail stream
Inline `onOpen` callback in DetailStream.tsx:522 creates a new function identity every render. GenAISummaryChip.tsx:98's useEffect depends on [open, onOpen], so it re-fires on every parent re-render while the dialog is open. Each fire calls onSeek -> setCurrentTime -> seekToTimestamp, creating a continuous re-render + seek loop
This commit is contained in:
parent
556d5d8c9d
commit
05286a9560
@ -6,7 +6,7 @@ import {
|
||||
ThreatLevel,
|
||||
THREAT_LEVEL_LABELS,
|
||||
} from "@/types/review";
|
||||
import React, { useEffect, useMemo, useState } from "react";
|
||||
import React, { useEffect, useMemo, useRef, useState } from "react";
|
||||
import { isDesktop } from "react-device-detect";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { MdAutoAwesome } from "react-icons/md";
|
||||
@ -95,11 +95,12 @@ export function GenAISummaryDialog({
|
||||
const Trigger = isDesktop ? DialogTrigger : DrawerTrigger;
|
||||
const Content = isDesktop ? DialogContent : DrawerContent;
|
||||
|
||||
const onOpenRef = useRef(onOpen);
|
||||
onOpenRef.current = onOpen;
|
||||
|
||||
useEffect(() => {
|
||||
if (onOpen) {
|
||||
onOpen(open);
|
||||
}
|
||||
}, [open, onOpen]);
|
||||
onOpenRef.current?.(open);
|
||||
}, [open]);
|
||||
|
||||
if (!aiAnalysis) {
|
||||
return null;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user