From e047c77cd187148a3443468ddd9e19574b14e6de Mon Sep 17 00:00:00 2001 From: Toba Ojo Date: Fri, 3 Oct 2025 13:08:21 +0100 Subject: [PATCH] Add RTSP URL parsing utility and enhance camera settings handling - Implement parseRTSPUrl function to extract username, password, IP, port, and path from RTSP URLs. - Update CameraSettingFields to utilize parsed RTSP URL data for camera configuration. - Modify WiFiSettingsForm to allow password visibility toggle. - Improve SightingOverview loading and error handling UI. - Adjust NavigationArrow component to reflect updated camera side logic. --- .../CameraSettings/CameraSettingFields.tsx | 9 +++++--- .../WiFi&Modem/WiFiSettingsForm.tsx | 14 +++++++++++-- .../SightingOverview/SightingOverview.tsx | 21 ++++++++++++++++--- src/components/UI/NavigationArrow.tsx | 2 +- src/hooks/useCameraZoom.ts | 6 ++---- src/utils/utils.ts | 17 +++++++++++++++ 6 files changed, 56 insertions(+), 13 deletions(-) diff --git a/src/components/CameraSettings/CameraSettingFields.tsx b/src/components/CameraSettings/CameraSettingFields.tsx index d530db3..46211c9 100644 --- a/src/components/CameraSettings/CameraSettingFields.tsx +++ b/src/components/CameraSettings/CameraSettingFields.tsx @@ -10,6 +10,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faEye, faEyeSlash } from "@fortawesome/free-regular-svg-icons"; import CardHeader from "../UI/CardHeader"; import { useCameraZoom } from "../../hooks/useCameraZoom"; +import { parseRTSPUrl } from "../../utils/utils"; type CameraSettingsProps = { initialData: CameraConfig; @@ -30,6 +31,8 @@ const CameraSettingFields = ({ const { mutation, query } = useCameraZoom({ camera: cameraControllerSide }); const zoomOptions = [1, 2, 4, 8]; + const parsed = parseRTSPUrl(initialData?.propURI?.value); + useEffect(() => { if (!query.data) return; const apiZoom = getZoomLevel(query.data); @@ -61,8 +64,8 @@ const CameraSettingFields = ({ () => ({ friendlyName: initialData?.id ?? "", cameraAddress: initialData?.propURI?.value ?? "", - userName: "", - password: "", + userName: parsed?.username ?? "", + password: parsed?.password ?? "", id: initialData?.id, zoom: zoomLevel, @@ -179,7 +182,7 @@ const CameraSettingFields = ({
-
+
{zoomOptions.map((zoom) => (
{ + const [showPwd, setShowPwd] = useState(false); const { wifiQuery, wifiMutation } = useWifiAndModem(); const wifiSSID = wifiQuery?.data?.propSSID?.value; @@ -32,7 +36,7 @@ const WiFiSettingsForm = () => { }; wifiMutation.mutate(wifiConfig); - //todo: check what response is + if (wifiMutation.error) { toast.error("Failed to update WiFi settings"); return; @@ -72,10 +76,16 @@ const WiFiSettingsForm = () => { + setShowPwd((s) => !s)} + icon={showPwd ? faEyeSlash : faEye} + />