mirror of
				https://github.com/blakeblackshear/frigate.git
				synced 2025-10-27 10:52:11 +01:00 
			
		
		
		
	Fix camera enabled check (#17331)
* Fix camera enabled check * Add fix to LiveCameraView
This commit is contained in:
		
							parent
							
								
									1f98162377
								
							
						
					
					
						commit
						1e45f63a7c
					
				@ -1,5 +1,5 @@
 | 
			
		||||
import { useState, useCallback, useEffect, useMemo } from "react";
 | 
			
		||||
import { useEnabledState } from "@/api/ws";
 | 
			
		||||
import { useCameraActivity } from "@/hooks/use-camera-activity";
 | 
			
		||||
import { IoIosWarning } from "react-icons/io";
 | 
			
		||||
import { Button } from "@/components/ui/button";
 | 
			
		||||
import {
 | 
			
		||||
@ -24,6 +24,7 @@ import { Checkbox } from "@/components/ui/checkbox";
 | 
			
		||||
import { Label } from "@/components/ui/label";
 | 
			
		||||
import {
 | 
			
		||||
  FrigateConfig,
 | 
			
		||||
  CameraConfig,
 | 
			
		||||
  GroupStreamingSettings,
 | 
			
		||||
  StreamType,
 | 
			
		||||
} from "@/types/frigateConfig";
 | 
			
		||||
@ -65,8 +66,9 @@ export function CameraStreamingDialog({
 | 
			
		||||
  // metadata
 | 
			
		||||
 | 
			
		||||
  // camera enabled state
 | 
			
		||||
  const { payload: enabledState } = useEnabledState(camera);
 | 
			
		||||
  const cameraEnabled = enabledState === "ON";
 | 
			
		||||
  const { enabled: isCameraEnabled } = useCameraActivity(
 | 
			
		||||
    config?.cameras[camera] ?? ({} as CameraConfig),
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  const isRestreamed = useMemo(
 | 
			
		||||
    () =>
 | 
			
		||||
@ -76,7 +78,7 @@ export function CameraStreamingDialog({
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
 | 
			
		||||
    cameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null,
 | 
			
		||||
    isCameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null,
 | 
			
		||||
    {
 | 
			
		||||
      revalidateOnFocus: false,
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
@ -112,6 +112,7 @@ import {
 | 
			
		||||
  SelectTrigger,
 | 
			
		||||
} from "@/components/ui/select";
 | 
			
		||||
import { usePersistence } from "@/hooks/use-persistence";
 | 
			
		||||
import { useCameraActivity } from "@/hooks/use-camera-activity";
 | 
			
		||||
import { Label } from "@/components/ui/label";
 | 
			
		||||
import { Switch } from "@/components/ui/switch";
 | 
			
		||||
import axios from "axios";
 | 
			
		||||
@ -143,8 +144,9 @@ export default function LiveCameraView({
 | 
			
		||||
    useResizeObserver(window);
 | 
			
		||||
 | 
			
		||||
  // camera enabled state
 | 
			
		||||
  const { payload: enabledState } = useEnabledState(camera.name);
 | 
			
		||||
  const cameraEnabled = enabledState === "ON";
 | 
			
		||||
  const { enabled: isCameraEnabled } = useCameraActivity(
 | 
			
		||||
    config?.cameras[camera.name] ?? ({} as CameraConfig),
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  // supported features
 | 
			
		||||
  const [streamName, setStreamName] = usePersistence<string>(
 | 
			
		||||
@ -160,7 +162,7 @@ export default function LiveCameraView({
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  const { data: cameraMetadata } = useSWR<LiveStreamMetadata>(
 | 
			
		||||
    cameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null,
 | 
			
		||||
    isCameraEnabled && isRestreamed ? `go2rtc/streams/${streamName}` : null,
 | 
			
		||||
    {
 | 
			
		||||
      revalidateOnFocus: false,
 | 
			
		||||
    },
 | 
			
		||||
@ -520,7 +522,7 @@ export default function LiveCameraView({
 | 
			
		||||
                      setPip(false);
 | 
			
		||||
                    }
 | 
			
		||||
                  }}
 | 
			
		||||
                  disabled={!cameraEnabled}
 | 
			
		||||
                  disabled={!isCameraEnabled}
 | 
			
		||||
                />
 | 
			
		||||
              )}
 | 
			
		||||
              {supports2WayTalk && (
 | 
			
		||||
@ -542,7 +544,7 @@ export default function LiveCameraView({
 | 
			
		||||
                      setAudio(true);
 | 
			
		||||
                    }
 | 
			
		||||
                  }}
 | 
			
		||||
                  disabled={!cameraEnabled}
 | 
			
		||||
                  disabled={!isCameraEnabled}
 | 
			
		||||
                />
 | 
			
		||||
              )}
 | 
			
		||||
              {supportsAudioOutput && preferredLiveMode != "jsmpeg" && (
 | 
			
		||||
@ -559,7 +561,7 @@ export default function LiveCameraView({
 | 
			
		||||
                    t("button.cameraAudio", { ns: "common" })
 | 
			
		||||
                  }
 | 
			
		||||
                  onClick={() => setAudio(!audio)}
 | 
			
		||||
                  disabled={!cameraEnabled}
 | 
			
		||||
                  disabled={!isCameraEnabled}
 | 
			
		||||
                />
 | 
			
		||||
              )}
 | 
			
		||||
              <FrigateCameraFeatures
 | 
			
		||||
@ -581,7 +583,7 @@ export default function LiveCameraView({
 | 
			
		||||
                setLowBandwidth={setLowBandwidth}
 | 
			
		||||
                supportsAudioOutput={supportsAudioOutput}
 | 
			
		||||
                supports2WayTalk={supports2WayTalk}
 | 
			
		||||
                cameraEnabled={cameraEnabled}
 | 
			
		||||
                cameraEnabled={isCameraEnabled ?? false}
 | 
			
		||||
              />
 | 
			
		||||
            </div>
 | 
			
		||||
          </TooltipProvider>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user