mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-11-02 03:40:31 +03:00
fix live audio settings and trigger highlights
- start each camera group's audio from that group's saved settings instead of merging every group - don't clear the previous trigger's highlight timeout when another trigger fires
This commit is contained in:
@@ -575,25 +575,19 @@ export default function DraggableGridLayout({
|
|||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!allGroupsStreamingSettings) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const initialAudioStates: AudioState = {};
|
const initialAudioStates: AudioState = {};
|
||||||
const initialVolumeStates: VolumeState = {};
|
const initialVolumeStates: VolumeState = {};
|
||||||
|
|
||||||
Object.entries(allGroupsStreamingSettings).forEach(([_, groupSettings]) => {
|
Object.entries(currentGroupStreamingSettings ?? {}).forEach(
|
||||||
if (groupSettings) {
|
([camera, cameraSettings]) => {
|
||||||
Object.entries(groupSettings).forEach(([camera, cameraSettings]) => {
|
initialAudioStates[camera] = cameraSettings.playAudio ?? false;
|
||||||
initialAudioStates[camera] = cameraSettings.playAudio ?? false;
|
initialVolumeStates[camera] = cameraSettings.volume ?? 1;
|
||||||
initialVolumeStates[camera] = cameraSettings.volume ?? 1;
|
},
|
||||||
});
|
);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
setAudioStates(initialAudioStates);
|
setAudioStates(initialAudioStates);
|
||||||
setVolumeStates(initialVolumeStates);
|
setVolumeStates(initialVolumeStates);
|
||||||
}, [allGroupsStreamingSettings]);
|
}, [currentGroupStreamingSettings, cameraGroup]);
|
||||||
|
|
||||||
const toggleAudio = (cameraName: string) => {
|
const toggleAudio = (cameraName: string) => {
|
||||||
setAudioStates((prev) => ({
|
setAudioStates((prev) => ({
|
||||||
|
|||||||
@@ -326,25 +326,19 @@ export default function LiveDashboardView({
|
|||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!allGroupsStreamingSettings) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const initialAudioStates: AudioState = {};
|
const initialAudioStates: AudioState = {};
|
||||||
const initialVolumeStates: VolumeState = {};
|
const initialVolumeStates: VolumeState = {};
|
||||||
|
|
||||||
Object.entries(allGroupsStreamingSettings).forEach(([_, groupSettings]) => {
|
Object.entries(currentGroupStreamingSettings ?? {}).forEach(
|
||||||
if (groupSettings) {
|
([camera, cameraSettings]) => {
|
||||||
Object.entries(groupSettings).forEach(([camera, cameraSettings]) => {
|
initialAudioStates[camera] = cameraSettings.playAudio ?? false;
|
||||||
initialAudioStates[camera] = cameraSettings.playAudio ?? false;
|
initialVolumeStates[camera] = cameraSettings.volume ?? 1;
|
||||||
initialVolumeStates[camera] = cameraSettings.volume ?? 1;
|
},
|
||||||
});
|
);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
setAudioStates(initialAudioStates);
|
setAudioStates(initialAudioStates);
|
||||||
setVolumeStates(initialVolumeStates);
|
setVolumeStates(initialVolumeStates);
|
||||||
}, [allGroupsStreamingSettings]);
|
}, [currentGroupStreamingSettings, cameraGroup]);
|
||||||
|
|
||||||
const toggleAudio = (cameraName: string): void => {
|
const toggleAudio = (cameraName: string): void => {
|
||||||
setAudioStates((prev) => ({
|
setAudioStates((prev) => ({
|
||||||
|
|||||||
@@ -148,13 +148,13 @@ export default function TriggerView({
|
|||||||
return current;
|
return current;
|
||||||
});
|
});
|
||||||
|
|
||||||
const timeout = setTimeout(() => {
|
// not cleared on the next payload, or a second trigger firing within
|
||||||
|
// 3s would leave this one highlighted
|
||||||
|
setTimeout(() => {
|
||||||
setTriggeredTrigger((prev) =>
|
setTriggeredTrigger((prev) =>
|
||||||
(prev || []).filter((name) => name !== triggers_status_ws.name),
|
(prev || []).filter((name) => name !== triggers_status_ws.name),
|
||||||
);
|
);
|
||||||
}, 3000);
|
}, 3000);
|
||||||
|
|
||||||
return () => clearTimeout(timeout);
|
|
||||||
}, [triggers_status_ws, selectedCamera, mutate]);
|
}, [triggers_status_ws, selectedCamera, mutate]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user