Don't display offline message in live player if camera is restreamed

This commit is contained in:
Josh Hawkins 2024-09-12 16:55:04 -05:00
parent 1f9ba1d625
commit 4572cfe2b7

View File

@ -1,5 +1,5 @@
import WebRtcPlayer from "./WebRTCPlayer"; import WebRtcPlayer from "./WebRTCPlayer";
import { CameraConfig } from "@/types/frigateConfig"; import { CameraConfig, FrigateConfig } from "@/types/frigateConfig";
import AutoUpdatingCameraImage from "../camera/AutoUpdatingCameraImage"; import AutoUpdatingCameraImage from "../camera/AutoUpdatingCameraImage";
import ActivityIndicator from "../indicators/activity-indicator"; import ActivityIndicator from "../indicators/activity-indicator";
import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useCallback, useEffect, useMemo, useRef, useState } from "react";
@ -20,6 +20,7 @@ import { cn } from "@/lib/utils";
import { TbExclamationCircle } from "react-icons/tb"; import { TbExclamationCircle } from "react-icons/tb";
import { TooltipPortal } from "@radix-ui/react-tooltip"; import { TooltipPortal } from "@radix-ui/react-tooltip";
import { baseUrl } from "@/api/baseUrl"; import { baseUrl } from "@/api/baseUrl";
import useSWR from "swr";
type LivePlayerProps = { type LivePlayerProps = {
cameraRef?: (ref: HTMLDivElement | null) => void; cameraRef?: (ref: HTMLDivElement | null) => void;
@ -58,7 +59,9 @@ export default function LivePlayer({
onError, onError,
onResetLiveMode, onResetLiveMode,
}: LivePlayerProps) { }: LivePlayerProps) {
const { data: config } = useSWR<FrigateConfig>("config");
const internalContainerRef = useRef<HTMLDivElement | null>(null); const internalContainerRef = useRef<HTMLDivElement | null>(null);
// camera activity // camera activity
const { activeMotion, activeTracking, objects, offline } = const { activeMotion, activeTracking, objects, offline } =
@ -147,6 +150,14 @@ export default function LivePlayer({
setLiveReady(true); setLiveReady(true);
}, []); }, []);
const isRestreamed = useMemo(
() =>
cameraConfig &&
config &&
Object.keys(config.go2rtc.streams || {}).includes(cameraConfig.name),
[cameraConfig, config],
);
if (!cameraConfig) { if (!cameraConfig) {
return <ActivityIndicator />; return <ActivityIndicator />;
} }
@ -298,7 +309,7 @@ export default function LivePlayer({
/> />
</div> </div>
{offline && !showStillWithoutActivity && ( {offline && !showStillWithoutActivity && !isRestreamed && (
<div className="flex size-full flex-col items-center"> <div className="flex size-full flex-col items-center">
<p className="mb-5"> <p className="mb-5">
{capitalizeFirstLetter(cameraConfig.name)} is offline {capitalizeFirstLetter(cameraConfig.name)} is offline