fix: video not replaced if a new event was queued

This commit is contained in:
JohnMark Sill 2022-01-13 00:42:58 -06:00
parent 14a12c5ad5
commit e9c9a5c0b7

View File

@ -1,5 +1,5 @@
import { Fragment, h } from 'preact'; import { Fragment, h } from 'preact';
import { useEffect, useRef, useState } from 'preact/hooks'; import { useCallback, useEffect, useRef, useState } from 'preact/hooks';
import { useApiHost, useEvents } from '../api'; import { useApiHost, useEvents } from '../api';
import { useSearchString } from '../hooks/useSearchString'; import { useSearchString } from '../hooks/useSearchString';
import { Next } from '../icons/Next'; import { Next } from '../icons/Next';
@ -60,17 +60,8 @@ export default function HistoryViewer({ camera }) {
setCurrentEventIndex(currentEvent.index + 1); setCurrentEventIndex(currentEvent.index + 1);
}; };
const RenderVideo = useCallback(() => {
return ( return (
<Fragment>
{currentEvent && (
<Fragment>
<div className='relative flex flex-col'>
<HistoryHeader
camera={camera}
date={longToDate(currentEvent.start_time)}
objectLabel={currentEvent.label}
className='mb-2'
/>
<video <video
ref={videoRef} ref={videoRef}
onTimeUpdate={handleTimeUpdate} onTimeUpdate={handleTimeUpdate}
@ -84,6 +75,21 @@ export default function HistoryViewer({ camera }) {
src={`${apiHost}/api/${camera}/start/${currentEvent.start_time}/end/${currentEvent.end_time}/clip.mp4`} src={`${apiHost}/api/${camera}/start/${currentEvent.start_time}/end/${currentEvent.end_time}/clip.mp4`}
/> />
</video> </video>
);
}, [currentEvent, apiHost, camera]);
return (
<Fragment>
{currentEvent && (
<Fragment>
<div className='relative flex flex-col'>
<HistoryHeader
camera={camera}
date={longToDate(currentEvent.start_time)}
objectLabel={currentEvent.label}
className='mb-2'
/>
<RenderVideo />
</div> </div>
</Fragment> </Fragment>
)} )}