mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-10 13:15:25 +03:00
timeline utils hook props
This commit is contained in:
parent
2bd7a8e93e
commit
c12617fd56
@ -79,9 +79,11 @@ export function EventReviewTimeline({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
||||||
segmentDuration,
|
{
|
||||||
timelineDuration,
|
segmentDuration,
|
||||||
selectedTimelineRef,
|
timelineDuration,
|
||||||
|
timelineRef: selectedTimelineRef,
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const timelineStartAligned = useMemo(
|
const timelineStartAligned = useMemo(
|
||||||
|
|||||||
@ -54,8 +54,7 @@ export function EventSegment({
|
|||||||
} = useEventSegmentUtils(segmentDuration, events, severityType);
|
} = useEventSegmentUtils(segmentDuration, events, severityType);
|
||||||
|
|
||||||
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
||||||
segmentDuration,
|
{ segmentDuration },
|
||||||
0,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const severity = useMemo(
|
const severity = useMemo(
|
||||||
|
|||||||
@ -77,8 +77,10 @@ export function MotionReviewTimeline({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
||||||
segmentDuration,
|
{
|
||||||
timelineDuration,
|
segmentDuration,
|
||||||
|
timelineDuration,
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const timelineStartAligned = useMemo(
|
const timelineStartAligned = useMemo(
|
||||||
|
|||||||
@ -43,8 +43,7 @@ export function MotionSegment({
|
|||||||
useMotionSegmentUtils(segmentDuration, motion_events);
|
useMotionSegmentUtils(segmentDuration, motion_events);
|
||||||
|
|
||||||
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
const { alignStartDateToTimeline, alignEndDateToTimeline } = useTimelineUtils(
|
||||||
segmentDuration,
|
{ segmentDuration },
|
||||||
0,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const { handleTouchStart } = useTapUtils();
|
const { handleTouchStart } = useTapUtils();
|
||||||
|
|||||||
@ -44,11 +44,11 @@ export function SummaryTimeline({
|
|||||||
[timelineEnd, timelineStart, segmentDuration],
|
[timelineEnd, timelineStart, segmentDuration],
|
||||||
);
|
);
|
||||||
|
|
||||||
const { alignStartDateToTimeline } = useTimelineUtils(
|
const { alignStartDateToTimeline } = useTimelineUtils({
|
||||||
segmentDuration,
|
segmentDuration,
|
||||||
reviewTimelineDuration,
|
timelineDuration: reviewTimelineDuration,
|
||||||
reviewTimelineRef,
|
timelineRef: reviewTimelineRef,
|
||||||
);
|
});
|
||||||
|
|
||||||
const timelineStartAligned = useMemo(
|
const timelineStartAligned = useMemo(
|
||||||
() => alignStartDateToTimeline(timelineStart) + 2 * segmentDuration,
|
() => alignStartDateToTimeline(timelineStart) + 2 * segmentDuration,
|
||||||
|
|||||||
@ -41,9 +41,11 @@ function useDraggableElement({
|
|||||||
const [clientYPosition, setClientYPosition] = useState<number | null>(null);
|
const [clientYPosition, setClientYPosition] = useState<number | null>(null);
|
||||||
const [initialClickAdjustment, setInitialClickAdjustment] = useState(0);
|
const [initialClickAdjustment, setInitialClickAdjustment] = useState(0);
|
||||||
const { alignStartDateToTimeline, getCumulativeScrollTop } = useTimelineUtils(
|
const { alignStartDateToTimeline, getCumulativeScrollTop } = useTimelineUtils(
|
||||||
segmentDuration,
|
{
|
||||||
timelineDuration,
|
segmentDuration: segmentDuration,
|
||||||
timelineRef,
|
timelineDuration: timelineDuration,
|
||||||
|
timelineRef,
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const draggingAtTopEdge = useMemo(() => {
|
const draggingAtTopEdge = useMemo(() => {
|
||||||
|
|||||||
@ -1,10 +1,16 @@
|
|||||||
import { useCallback } from "react";
|
import { useCallback } from "react";
|
||||||
|
|
||||||
export const useTimelineUtils = (
|
export type TimelineUtilsProps = {
|
||||||
segmentDuration: number,
|
segmentDuration: number;
|
||||||
timelineDuration: number,
|
timelineDuration?: number;
|
||||||
timelineRef?: React.RefObject<HTMLElement>,
|
timelineRef?: React.RefObject<HTMLElement>;
|
||||||
) => {
|
};
|
||||||
|
|
||||||
|
export function useTimelineUtils({
|
||||||
|
segmentDuration,
|
||||||
|
timelineDuration,
|
||||||
|
timelineRef,
|
||||||
|
}: TimelineUtilsProps) {
|
||||||
const alignEndDateToTimeline = useCallback(
|
const alignEndDateToTimeline = useCallback(
|
||||||
(time: number): number => {
|
(time: number): number => {
|
||||||
const remainder = time % segmentDuration;
|
const remainder = time % segmentDuration;
|
||||||
@ -33,7 +39,7 @@ export const useTimelineUtils = (
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const getVisibleTimelineDuration = useCallback(() => {
|
const getVisibleTimelineDuration = useCallback(() => {
|
||||||
if (timelineRef?.current) {
|
if (timelineRef?.current && timelineDuration) {
|
||||||
const {
|
const {
|
||||||
scrollHeight: timelineHeight,
|
scrollHeight: timelineHeight,
|
||||||
clientHeight: visibleTimelineHeight,
|
clientHeight: visibleTimelineHeight,
|
||||||
@ -55,4 +61,4 @@ export const useTimelineUtils = (
|
|||||||
getCumulativeScrollTop,
|
getCumulativeScrollTop,
|
||||||
getVisibleTimelineDuration,
|
getVisibleTimelineDuration,
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
|||||||
@ -385,7 +385,11 @@ function DetectionReview({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { alignStartDateToTimeline, getVisibleTimelineDuration } =
|
const { alignStartDateToTimeline, getVisibleTimelineDuration } =
|
||||||
useTimelineUtils(segmentDuration, timelineDuration, reviewTimelineRef);
|
useTimelineUtils({
|
||||||
|
segmentDuration,
|
||||||
|
timelineDuration,
|
||||||
|
timelineRef: reviewTimelineRef,
|
||||||
|
});
|
||||||
|
|
||||||
const scrollLock = useScrollLockout(contentRef);
|
const scrollLock = useScrollLockout(contentRef);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user