From 26b78b1bd6cc3b391b78ef527eca540236930c3e Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 7 Feb 2024 06:46:45 -0700 Subject: [PATCH] Use fixed height --- web/src/components/image/EventThumbnail.tsx | 24 +++++++++++++++++++++ web/src/components/player/LivePlayer.tsx | 12 ++++------- web/src/pages/Live.tsx | 23 ++++++-------------- 3 files changed, 35 insertions(+), 24 deletions(-) create mode 100644 web/src/components/image/EventThumbnail.tsx diff --git a/web/src/components/image/EventThumbnail.tsx b/web/src/components/image/EventThumbnail.tsx new file mode 100644 index 000000000..6b5e36275 --- /dev/null +++ b/web/src/components/image/EventThumbnail.tsx @@ -0,0 +1,24 @@ +import { baseUrl } from "@/api/baseUrl"; +import { Event as FrigateEvent } from "@/types/event"; +import { LuStar } from "react-icons/lu"; + +type EventThumbnailProps = { + event: FrigateEvent; + onFavorite?: (e: Event, event: FrigateEvent) => void; +}; +export function EventThumbnail({ event, onFavorite }: EventThumbnailProps) { + return ( +
+ (onFavorite ? onFavorite(e, event) : null)} + fill={event.retain_indefinitely ? "currentColor" : "none"} + /> +
+ ); +} diff --git a/web/src/components/player/LivePlayer.tsx b/web/src/components/player/LivePlayer.tsx index 8bf3bf13c..7305881e1 100644 --- a/web/src/components/player/LivePlayer.tsx +++ b/web/src/components/player/LivePlayer.tsx @@ -78,7 +78,7 @@ export default function LivePlayer({ if ("MediaSource" in window || "ManagedMediaSource" in window) { player = ( ); @@ -131,14 +131,10 @@ export default function LivePlayer({ } return ( -
+
+ {player} - - -
- {cameraConfig.name.replaceAll("_", " ")} -
-
+
); } diff --git a/web/src/pages/Live.tsx b/web/src/pages/Live.tsx index 4b7afd2f8..43177e328 100644 --- a/web/src/pages/Live.tsx +++ b/web/src/pages/Live.tsx @@ -1,11 +1,10 @@ -import { baseUrl } from "@/api/baseUrl"; +import { EventThumbnail } from "@/components/image/EventThumbnail"; import LivePlayer from "@/components/player/LivePlayer"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { Event as FrigateEvent } from "@/types/event"; import { FrigateConfig } from "@/types/frigateConfig"; import axios from "axios"; import { useCallback, useEffect, useMemo, useState } from "react"; -import { LuStar } from "react-icons/lu"; import useSWR from "swr"; function Live() { @@ -16,7 +15,7 @@ function Live() { const [recentCutoff, setRecentCutoff] = useState(0); useEffect(() => { const date = new Date(); - date.setHours(date.getHours() - 12); + date.setHours(date.getHours() - 4); setRecentCutoff(date.getTime() / 1000); const intervalId: NodeJS.Timeout = setInterval(() => { @@ -66,19 +65,11 @@ function Live() {
{events.map((event) => { return ( -
- onFavorite(e, event)} - fill={event.retain_indefinitely ? "currentColor" : "none"} - /> -
+ event={event} + onFavorite={onFavorite} + /> ); })}
@@ -91,7 +82,7 @@ function Live() { return ( );