From e32d250f390d15f7dcd8ab5776454f7c44b45395 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sat, 27 Dec 2025 07:30:24 -0600 Subject: [PATCH] fix audio label translation in explore filter --- .../components/filter/SearchFilterGroup.tsx | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) 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