Improve Recordings loading (#10462)

* Show skeleton until video players finishes loading

* Clean up android logic

* Ensure mobile view video is consistent

* Cleanup

* Only show when not scrubbing

* Don't use loading

* Start preview at correct time too

* Fix react race condition

* Be wait for seek to show video player
This commit is contained in:
Nicolas Mowen
2024-03-15 06:52:38 -06:00
committed by GitHub
parent d882cb0f63
commit c66f552280
5 changed files with 63 additions and 18 deletions

View File

@@ -301,6 +301,7 @@ export function MobileRecordingView({
relevantPreviews,
allCameras,
}: MobileRecordingViewProps) {
const { data: config } = useSWR<FrigateConfig>("config");
const navigate = useNavigate();
const contentRef = useRef<HTMLDivElement | null>(null);
@@ -310,6 +311,21 @@ export function MobileRecordingView({
const [playbackCamera, setPlaybackCamera] = useState(startCamera);
const [playbackStart, setPlaybackStart] = useState(startTime);
const grow = useMemo(() => {
if (!config) {
return "aspect-video";
}
const aspectRatio =
config.cameras[playbackCamera].detect.width /
config.cameras[playbackCamera].detect.height;
if (aspectRatio > 2) {
return "aspect-wide";
} else {
return "aspect-video";
}
}, [config, playbackCamera]);
// timeline time
const timeRange = useMemo(() => getChunkedTimeDay(startTime), [startTime]);
@@ -453,6 +469,7 @@ export function MobileRecordingView({
<div>
<DynamicVideoPlayer
className={`w-full ${grow}`}
camera={playbackCamera}
timeRange={currentTimeRange}
cameraPreviews={relevantPreviews || []}