import { h } from 'preact'; import { memo } from 'preact/compat'; import { useCallback, useState, useMemo } from 'preact/hooks'; import { Tr, Td, Tbody } from '../../../components/Table'; import Filterable from './filterable'; import Event from '../../Event'; import { useSearchString } from '../../../hooks/useSearchString'; import { useClickOutside } from '../../../hooks/useClickOutside'; const EventsRow = memo( ({ id, apiHost, start_time: startTime, end_time: endTime, scrollToRef, lastRowRef, handleFilter, pathname, limit, camera, label, top_score: score, zones, retain_indefinitely }) => { const [viewEvent, setViewEvent] = useState(null); const { searchString, removeDefaultSearchKeys } = useSearchString(limit); const searchParams = useMemo(() => new URLSearchParams(searchString), [searchString]); const innerRef = useClickOutside(() => { setViewEvent(null); }); const viewEventHandler = useCallback( (id) => { //Toggle event view if (viewEvent === id) return setViewEvent(null); //Set event id to be rendered. setViewEvent(id); }, [viewEvent] ); const start = new Date(parseInt(startTime * 1000, 10)); const end = endTime ? new Date(parseInt(endTime * 1000, 10)) : null; return (