Files
Mav-Mobile-UI/src/components/CameraSettings/CameraSettings.tsx

41 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-09-12 08:21:52 +01:00
import { useFetchCameraConfig } from "../../hooks/useCameraConfig";
import type { ZoomLevel } from "../../types/types";
2025-08-13 14:23:48 +01:00
import Card from "../UI/Card";
import CardHeader from "../UI/CardHeader";
import CameraSettingFields from "./CameraSettingFields";
import { faWrench } from "@fortawesome/free-solid-svg-icons";
2025-08-13 14:23:48 +01:00
const CameraSettings = ({
title,
side,
zoomLevel,
onZoomLevelChange,
}: {
title: string;
side: string;
zoomLevel?: ZoomLevel;
onZoomLevelChange?: (level: ZoomLevel) => void;
}) => {
const { data, isError, isPending, updateCameraConfig } =
useFetchCameraConfig(side);
2025-08-13 14:23:48 +01:00
return (
<Card className="overflow-hidden min-h-[40vh] md:min-h-[60vh] max-h-[80vh] lg:w-[40%] p-4">
2025-09-21 20:10:05 +01:00
{isPending && <>Loading camera config</>}
{isError && <>Error fetching camera config</>}
<div className="relative flex flex-col space-y-3">
2025-09-21 20:10:05 +01:00
<CardHeader title={title} icon={faWrench} />
2025-09-29 15:55:25 +01:00
{!isPending && (
<CameraSettingFields
initialData={data}
updateCameraConfig={updateCameraConfig}
zoomLevel={zoomLevel}
onZoomLevelChange={onZoomLevelChange}
/>
)}
2025-09-21 20:10:05 +01:00
</div>
2025-08-13 14:23:48 +01:00
</Card>
);
};
export default CameraSettings;