From 16bee2dd3de129f4b075d8b127c3dc65039175b5 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 1 Mar 2024 14:17:05 -0700 Subject: [PATCH] Cleanup mobile live --- web/src/App.tsx | 2 +- web/src/views/live/LiveCameraView.tsx | 39 ++++++++++++++++++++------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/web/src/App.tsx b/web/src/App.tsx index 9bbb666f8..0512d15d3 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -27,7 +27,7 @@ function App() { {isMobile && }
} /> diff --git a/web/src/views/live/LiveCameraView.tsx b/web/src/views/live/LiveCameraView.tsx index 60cad970e..5c00127b7 100644 --- a/web/src/views/live/LiveCameraView.tsx +++ b/web/src/views/live/LiveCameraView.tsx @@ -19,7 +19,12 @@ import useKeyboardListener from "@/hooks/use-keyboard-listener"; import { CameraConfig } from "@/types/frigateConfig"; import { CameraPtzInfo } from "@/types/ptz"; import React, { useCallback, useMemo, useState } from "react"; -import { isSafari } from "react-device-detect"; +import { + isDesktop, + isMobile, + isSafari, + useMobileOrientation, +} from "react-device-detect"; import { BsThreeDotsVertical } from "react-icons/bs"; import { FaAngleDown, @@ -46,6 +51,7 @@ type LiveCameraViewProps = { }; export default function LiveCameraView({ camera }: LiveCameraViewProps) { const navigate = useNavigate(); + const { isPortrait } = useMobileOrientation(); // camera features @@ -65,41 +71,55 @@ export default function LiveCameraView({ camera }: LiveCameraViewProps) { const [audio, setAudio] = useState(false); const growClassName = useMemo(() => { - if (camera.detect.width / camera.detect.height > 2) { + if (isMobile) { + if (isPortrait) { + return "absolute left-2 right-2 top-[50%] -translate-y-[50%]"; + } else { + return "absolute top-2 bottom-2 left-[50%] -translate-x-[50%]"; + } + } else if (camera.detect.width / camera.detect.height > 2) { return "absolute left-2 right-2 top-[50%] -translate-y-[50%]"; } else { return "absolute top-2 bottom-2 left-[50%] -translate-x-[50%]"; } - }, [camera]); + }, [camera, isPortrait]); return ( -
-
- -
+
setAudio(!audio)} /> sendDetect(detectState == "ON" ? "OFF" : "ON")} /> sendRecord(recordState == "ON" ? "OFF" : "ON")} /> {camera.audio.enabled_in_config && (