import { useCallback } from 'react'; import { ReviewSegment } from '@/types/review'; export const useEventUtils = (events: ReviewSegment[], segmentDuration: number) => { const isStartOfEvent = useCallback((time: number): boolean => { return events.some((event) => { const segmentStart = getSegmentStart(event.start_time); return time >= segmentStart && time < segmentStart + segmentDuration; }); }, [events, segmentDuration]); const isEndOfEvent = useCallback((time: number): boolean => { return events.some((event) => { if (typeof event.end_time === 'number') { const segmentEnd = getSegmentEnd(event.end_time); return time >= segmentEnd - segmentDuration && time < segmentEnd; } return false; // Return false if end_time is undefined }); }, [events, segmentDuration]); const getSegmentStart = useCallback((time: number): number => { return Math.floor(time / (segmentDuration)) * (segmentDuration); }, [segmentDuration]); const getSegmentEnd = useCallback((time: number): number => { return Math.ceil(time / (segmentDuration)) * (segmentDuration); }, [segmentDuration]); const alignDateToTimeline = useCallback((time: number): number => { const remainder = time % (segmentDuration); const adjustment = remainder !== 0 ? segmentDuration - remainder : 0; return time + adjustment; }, [segmentDuration]); return { isStartOfEvent, isEndOfEvent, getSegmentStart, getSegmentEnd, alignDateToTimeline }; };