diff --git a/src/components/CameraSettings/CameraSettingFields.tsx b/src/components/CameraSettings/CameraSettingFields.tsx
index 74db4bc..284d249 100644
--- a/src/components/CameraSettings/CameraSettingFields.tsx
+++ b/src/components/CameraSettings/CameraSettingFields.tsx
@@ -48,7 +48,6 @@ const CameraSettingFields = ({
};
const handleSubmit = (values: CameraSettingValues) => {
- console.log(values);
updateCameraConfig(values);
};
diff --git a/src/components/FrontCameraOverview/FrontCameraOverviewCard.tsx b/src/components/FrontCameraOverview/FrontCameraOverviewCard.tsx
index 6c449dd..b7689fa 100644
--- a/src/components/FrontCameraOverview/FrontCameraOverviewCard.tsx
+++ b/src/components/FrontCameraOverview/FrontCameraOverviewCard.tsx
@@ -10,6 +10,7 @@ const FrontCameraOverviewCard = () => {
const navigate = useNavigate();
const handlers = useSwipeable({
onSwipedRight: () => navigate("/camera-settings"),
+ onSwipedLeft: () => navigate("/rear-camera-settings"),
trackMouse: true,
});
diff --git a/src/components/FrontCameraSettings/OverviewVideoContainer.tsx b/src/components/FrontCameraSettings/OverviewVideoContainer.tsx
index db16aeb..c58d3cd 100644
--- a/src/components/FrontCameraSettings/OverviewVideoContainer.tsx
+++ b/src/components/FrontCameraSettings/OverviewVideoContainer.tsx
@@ -1,7 +1,7 @@
import clsx from "clsx";
import { SnapshotContainer } from "../CameraOverview/SnapshotContainer";
import Card from "../UI/Card";
-import { useNavigate } from "react-router";
+import { useNavigate, useLocation } from "react-router";
import { useSwipeable } from "react-swipeable";
import type { ZoomLevel } from "../../types/types";
@@ -18,8 +18,16 @@ const OverviewVideoContainer = ({
onZoomLevelChange?: (level: ZoomLevel) => void;
}) => {
const navigate = useNavigate();
+ const location = useLocation();
const handlers = useSwipeable({
- onSwipedLeft: () => navigate("/"),
+ onSwipedLeft: () => {
+ if (location.pathname === "/rear-camera-settings") return;
+ navigate("/");
+ },
+ onSwipedRight: () => {
+ if (location.pathname === "/camera-settings") return;
+ navigate("/");
+ },
trackMouse: true,
});
return (
diff --git a/src/components/SightingOverview/SightingOverview.tsx b/src/components/SightingOverview/SightingOverview.tsx
index 14b012b..07b62c0 100644
--- a/src/components/SightingOverview/SightingOverview.tsx
+++ b/src/components/SightingOverview/SightingOverview.tsx
@@ -30,6 +30,7 @@ const SightingOverview = () => {
return (
+
{mostRecent && (
diff --git a/src/components/UI/CardHeader.tsx b/src/components/UI/CardHeader.tsx
index d39e675..2d7c369 100644
--- a/src/components/UI/CardHeader.tsx
+++ b/src/components/UI/CardHeader.tsx
@@ -17,7 +17,6 @@ const CardHeader = ({
img,
sighting,
}: CameraOverviewHeaderProps) => {
- // console.log(sighting?.debug.toLowerCase());
return (
{
- try {
- const res = await fetch("http://192.168.75.11/api/versions", { signal });
- if (!res.ok) throw new Error(`HTTP ${res.status}`);
- return res.json();
- } catch (error) {
- console.log(error);
- return undefined;
- }
-}
-
-const pad = (n: number) => String(n).padStart(2, "0");
-const normalizeToMs = (ts: number) => (ts < 1e12 ? ts * 1000 : ts); // seconds → ms if needed
-
-function formatFromMs(ms: number, tz: "local" | "utc" = "local") {
- const d = new Date(ms);
- const h = tz === "utc" ? d.getUTCHours() : d.getHours();
- const m = tz === "utc" ? d.getUTCMinutes() : d.getMinutes();
- const s = tz === "utc" ? d.getUTCSeconds() : d.getSeconds();
- const day = tz === "utc" ? d.getUTCDate() : d.getDate();
- const month = (tz === "utc" ? d.getUTCMonth() : d.getMonth()) + 1;
- const year = tz === "utc" ? d.getUTCFullYear() : d.getFullYear();
- return `${pad(h)}:${pad(m)}:${pad(s)} ${pad(day)}-${pad(month)}-${year}`;
-}
-
export default function Header() {
- const [offsetMs, setOffsetMs] = useState
(null);
- const [nowMs, setNowMs] = useState(Date.now());
const [isFullscreen, setIsFullscreen] = useState(false);
const { sessionStarted } = useNPEDContext();
const toggleFullscreen = () => {
if (!document.fullscreenElement) {
- // Enter fullscreen on the entire app
document.documentElement.requestFullscreen();
setIsFullscreen(true);
} else {
- // Exit fullscreen
document.exitFullscreen();
setIsFullscreen(false);
}
@@ -62,38 +31,8 @@ export default function Header() {
window.location.reload();
};
- useEffect(() => {
- const ac = new AbortController();
- fetchVersions(ac.signal)
- .then((data) => {
- if (!data) throw new Error("No data");
- const serverMs = normalizeToMs(data?.timeStamp);
- setOffsetMs(serverMs - Date.now());
- })
- .catch((err) => {
- console.log(err);
- });
- return () => ac.abort("failed");
- }, []);
-
- useEffect(() => {
- let timer: number;
- const schedule = () => {
- const now = Date.now();
- setNowMs(now);
- const delay = 1000 - (now % 1000);
- timer = window.setTimeout(schedule, delay);
- };
- schedule();
- return () => clearTimeout(timer);
- }, []);
-
- const serverNowMs = offsetMs == null ? nowMs : nowMs + offsetMs;
- const localStr = formatFromMs(serverNowMs, "local");
- const utcStr = formatFromMs(serverNowMs, "utc");
-
return (
-
+

@@ -103,11 +42,11 @@ export default function Header() {
{sessionStarted && (
Session Active
)}
-
-
Local: {localStr}
- UTC: {utcStr}
-
+
+
+
+
{isFullscreen ? (
diff --git a/src/components/UI/NavigationArrow.tsx b/src/components/UI/NavigationArrow.tsx
index 65c14d7..a879255 100644
--- a/src/components/UI/NavigationArrow.tsx
+++ b/src/components/UI/NavigationArrow.tsx
@@ -9,7 +9,6 @@ type NavigationArrowProps = {
const NavigationArrow = ({ side, settingsPage }: NavigationArrowProps) => {
const navigate = useNavigate();
-
const navigationDest = (side: string | undefined) => {
if (settingsPage) {
navigate("/");
@@ -44,19 +43,17 @@ const NavigationArrow = ({ side, settingsPage }: NavigationArrowProps) => {
}
return (
<>
- {side === "Front" ? (
-
navigationDest(side)}
- />
- ) : (
- navigationDest(side)}
- />
- )}
+ navigationDest(side)}
+ />
+
+ navigationDest(side)}
+ />
>
);
};
diff --git a/src/hooks/useCameraConfig.ts b/src/hooks/useCameraConfig.ts
index 284468f..cd04942 100644
--- a/src/hooks/useCameraConfig.ts
+++ b/src/hooks/useCameraConfig.ts
@@ -3,7 +3,6 @@ import { toast } from "sonner";
import { CAM_BASE } from "../utils/config";
const base_url = `${CAM_BASE}/api`;
-console.log(base_url);
const fetchCameraSideConfig = async ({ queryKey }: { queryKey: string[] }) => {
const [, cameraSide] = queryKey;
diff --git a/src/hooks/useNPEDAuth.ts b/src/hooks/useNPEDAuth.ts
index ed48fc1..f1844d4 100644
--- a/src/hooks/useNPEDAuth.ts
+++ b/src/hooks/useNPEDAuth.ts
@@ -48,8 +48,6 @@ async function signIn(loginDetails: NPEDFieldType) {
if (!frontCameraResponse.ok) throw new Error("cannot reach NPED endpoint");
if (!rearCameraResponse.ok) throw new Error("cannot reach NPED endpoint");
- const data = await frontCameraResponse.json();
- console.log(data);
return {
frontResponse: frontCameraResponse.json(),
rearResponse: rearCameraResponse.json(),
diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx
index 844a26b..7af2040 100644
--- a/src/pages/Dashboard.tsx
+++ b/src/pages/Dashboard.tsx
@@ -6,7 +6,7 @@ import { CAM_BASE } from "../utils/config";
const Dashboard = () => {
const base_url = `${CAM_BASE}/SightingListFront/sightingSummary?mostRecentRef=`;
return (
-
+
diff --git a/src/pages/FrontCamera.tsx b/src/pages/FrontCamera.tsx
index cc4bc03..3393e5e 100644
--- a/src/pages/FrontCamera.tsx
+++ b/src/pages/FrontCamera.tsx
@@ -18,7 +18,7 @@ const FrontCamera = () => {
{
- const navigate = useNavigate();
- const handlers = useSwipeable({
- onSwipedRight: () => navigate("/"),
- trackMouse: true,
+ const [zoomLevel, setZoomLevel] = useState({
+ left: 0,
+ top: 0,
+ x: 0,
+ y: 0,
+ px: 0,
+ py: 0,
+ level: 1,
});
-
return (
-