default to first go2rtc stream when stream name doesn't exist in storage

This commit is contained in:
Josh Hawkins 2025-03-23 13:25:10 -05:00
parent 94086db66e
commit d08125a417

View File

@ -103,16 +103,24 @@ export function CameraStreamingDialog({
if (!config) { if (!config) {
return; return;
} }
// Get available streams from the config and first stream entry as fallback
const availableStreams = config?.cameras[camera]?.live?.streams || {};
const firstStreamEntry = Object.entries(availableStreams)[0]?.[1] || "";
if (groupStreamingSettings && groupStreamingSettings[camera]) { if (groupStreamingSettings && groupStreamingSettings[camera]) {
const cameraSettings = groupStreamingSettings[camera]; const cameraSettings = groupStreamingSettings[camera];
setStreamName(cameraSettings.streamName || ""); const streamNameFromSettings = cameraSettings.streamName || "";
const streamExists =
streamNameFromSettings &&
Object.values(availableStreams).includes(streamNameFromSettings);
setStreamName(streamExists ? streamNameFromSettings : firstStreamEntry);
setStreamType(cameraSettings.streamType || "smart"); setStreamType(cameraSettings.streamType || "smart");
setCompatibilityMode(cameraSettings.compatibilityMode || false); setCompatibilityMode(cameraSettings.compatibilityMode || false);
} else { } else {
setStreamName( setStreamName(firstStreamEntry);
Object.entries(config?.cameras[camera]?.live?.streams || {})[0]?.[1] ||
"",
);
setStreamType("smart"); setStreamType("smart");
setCompatibilityMode(false); setCompatibilityMode(false);
} }
@ -150,19 +158,28 @@ export function CameraStreamingDialog({
if (!config) { if (!config) {
return; return;
} }
// Get available streams from the config and first stream entry as fallback
const availableStreams = config?.cameras[camera]?.live?.streams || {};
const firstStreamEntry = Object.entries(availableStreams)[0]?.[1] || "";
if (groupStreamingSettings && groupStreamingSettings[camera]) { if (groupStreamingSettings && groupStreamingSettings[camera]) {
const cameraSettings = groupStreamingSettings[camera]; const cameraSettings = groupStreamingSettings[camera];
setStreamName(cameraSettings.streamName || ""); const streamNameFromSettings = cameraSettings.streamName || "";
const streamExists =
streamNameFromSettings &&
Object.values(availableStreams).includes(streamNameFromSettings);
setStreamName(streamExists ? streamNameFromSettings : firstStreamEntry);
setStreamType(cameraSettings.streamType || "smart"); setStreamType(cameraSettings.streamType || "smart");
setCompatibilityMode(cameraSettings.compatibilityMode || false); setCompatibilityMode(cameraSettings.compatibilityMode || false);
} else { } else {
setStreamName( setStreamName(firstStreamEntry);
Object.entries(config?.cameras[camera]?.live?.streams || {})[0]?.[1] ||
"",
);
setStreamType("smart"); setStreamType("smart");
setCompatibilityMode(false); setCompatibilityMode(false);
} }
setIsDialogOpen(false); setIsDialogOpen(false);
}, [groupStreamingSettings, camera, config, setIsDialogOpen]); }, [groupStreamingSettings, camera, config, setIsDialogOpen]);