import { useFrigateReviews } from "@/api/ws"; import { ReviewSeverity } from "@/types/review"; import { Button } from "../ui/button"; import { LuRefreshCcw } from "react-icons/lu"; import { MutableRefObject, useEffect, useMemo, useState } from "react"; type NewReviewDataProps = { className: string; contentRef: MutableRefObject; severity: ReviewSeverity; hasUpdate: boolean; setHasUpdate: (update: boolean) => void; pullLatestData: () => void; }; export default function NewReviewData({ className, contentRef, severity, hasUpdate, setHasUpdate, pullLatestData, }: NewReviewDataProps) { const { payload: review } = useFrigateReviews(); const startCheckTs = useMemo(() => Date.now() / 1000, []); const [reviewTs, setReviewTs] = useState(startCheckTs); useEffect(() => { if (!review) { return; } if (review.type == "end" && review.review.severity == severity) { setReviewTs(review.review.start_time); } }, [review, severity]); useEffect(() => { if (reviewTs > startCheckTs) { setHasUpdate(true); } }, [startCheckTs, reviewTs, setHasUpdate]); return (
); }