diff --git a/web/src/views/events/RecordingView.tsx b/web/src/views/events/RecordingView.tsx index 8a4bf5f4e..123e7b74b 100644 --- a/web/src/views/events/RecordingView.tsx +++ b/web/src/views/events/RecordingView.tsx @@ -4,6 +4,13 @@ import DynamicVideoPlayer, { import EventReviewTimeline from "@/components/timeline/EventReviewTimeline"; import MotionReviewTimeline from "@/components/timeline/MotionReviewTimeline"; import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; import { Preview } from "@/types/preview"; import { MotionData, ReviewSegment, ReviewSeverity } from "@/types/review"; import { getChunkedTimeDay } from "@/utils/timelineUtil"; @@ -258,6 +265,7 @@ type MobileRecordingViewProps = { severity: ReviewSeverity; reviewItems: ReviewSegment[]; relevantPreviews?: Preview[]; + allCameras: string[]; }; export function MobileRecordingView({ startCamera, @@ -265,6 +273,7 @@ export function MobileRecordingView({ severity, reviewItems, relevantPreviews, + allCameras, }: MobileRecordingViewProps) { const navigate = useNavigate(); const contentRef = useRef(null); @@ -273,6 +282,8 @@ export function MobileRecordingView({ const [playerReady, setPlayerReady] = useState(false); const controllerRef = useRef(undefined); + const [playbackCamera, setPlaybackCamera] = useState(startCamera); + const [playbackStart, setPlaybackStart] = useState(startTime); // timeline time @@ -355,16 +366,39 @@ export function MobileRecordingView({ return (
- +
+ + + + + + + { + setPlaybackStart(currentTime); + setPlaybackCamera(cam); + }} + > + {allCameras.map((cam) => ( + + {cam.replaceAll("_", " ")} + + ))} + + + +
{ controllerRef.current = controller; setPlayerReady(true); diff --git a/web/vite.config.ts b/web/vite.config.ts index 5afefa331..cc3ead707 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -12,24 +12,24 @@ export default defineConfig({ server: { proxy: { "/api": { - target: "http://localhost:5000", + target: "http://192.168.50.106:5000", ws: true, }, "/vod": { - target: "http://localhost:5000", + target: "http://192.168.50.106:5000", }, "/clips": { - target: "http://localhost:5000", + target: "http://192.168.50.106:5000", }, "/exports": { - target: "http://localhost:5000", + target: "http://192.168.50.106:5000", }, "/ws": { - target: "ws://localhost:5000", + target: "ws://192.168.50.106:5000", ws: true, }, "/live": { - target: "ws://localhost:5000", + target: "ws://192.168.50.106:5000", changeOrigin: true, ws: true, },