diff --git a/web/src/components/filter/SearchFilterGroup.tsx b/web/src/components/filter/SearchFilterGroup.tsx index 3c44cad0c..fe9a70e18 100644 --- a/web/src/components/filter/SearchFilterGroup.tsx +++ b/web/src/components/filter/SearchFilterGroup.tsx @@ -251,11 +251,30 @@ function GeneralFilterButton({ updateLabelFilter, }: GeneralFilterButtonProps) { const { t } = useTranslation(["components/filter"]); + const { data: config } = useSWR("config", { + revalidateOnFocus: false, + }); const [open, setOpen] = useState(false); const [currentLabels, setCurrentLabels] = useState( selectedLabels, ); + const allAudioListenLabels = useMemo>(() => { + if (!config) { + return new Set(); + } + + const labels = new Set(); + Object.values(config.cameras).forEach((camera) => { + if (camera?.audio?.enabled) { + camera.audio.listen.forEach((label) => { + labels.add(label); + }); + } + }); + return labels; + }, [config]); + const buttonText = useMemo(() => { if (isMobile) { return t("labels.all.short"); @@ -266,13 +285,17 @@ function GeneralFilterButton({ } if (selectedLabels.length == 1) { - return getTranslatedLabel(selectedLabels[0]); + const label = selectedLabels[0]; + return getTranslatedLabel( + label, + allAudioListenLabels.has(label) ? "audio" : "object", + ); } return t("labels.count", { count: selectedLabels.length, }); - }, [selectedLabels, t]); + }, [selectedLabels, allAudioListenLabels, t]); // ui