Files
frigate/web/src/hooks/use-allowed-cameras.ts
T

26 lines
794 B
TypeScript
Raw Normal View History

import { useContext } from "react";
import { AuthContext } from "@/context/auth-context";
import useSWR from "swr";
import { FrigateConfig } from "@/types/frigateConfig";
2026-03-04 10:07:34 -06:00
import { isReplayCamera } from "@/utils/cameraUtil";
export function useAllowedCameras() {
const { auth } = useContext(AuthContext);
const { data: config } = useSWR<FrigateConfig>("config", {
revalidateOnFocus: false,
});
if (
auth.user?.role === "viewer" ||
auth.user?.role === "admin" ||
!auth.isAuthenticated // anonymous internal port
) {
2026-03-04 10:07:34 -06:00
// return all cameras, excluding replay cameras
return config?.cameras
? Object.keys(config.cameras).filter((name) => !isReplayCamera(name))
: [];
}
2026-03-04 10:07:34 -06:00
return (auth.allowedCameras || []).filter((name) => !isReplayCamera(name));
}