fleeta-components
Version:
A comprehensive React component library for fleet management applications
103 lines • 3.49 kB
TypeScript
/**
* VideoPlayer 관련 타입 정의
* VideoPlayer 컴포넌트와 관련된 모든 타입을 정의합니다.
*/
/**
* VideoPlayer props interface
* Defines all available props for the VideoPlayer component
*/
export interface VideoPlayerProps {
/** Video source URL */
videoUrl: string | null;
/** Enable automatic MP4 metadata parsing */
enableMetadataParsing?: boolean;
/** GPS data points for map display */
gpsPoints?: import('./utils/gpsParser').GpsPoint[] | null;
/** Sensor data for G-force visualization */
sensorData?: import('./utils/sensorParser').IAccel[] | null;
/** Initial horizontal flip state */
initialHorizontalFlip?: boolean;
/** Initial vertical flip state */
initialVerticalFlip?: boolean;
/** Auto-play video on load */
autoPlay?: boolean;
/** Show video controls */
showControls?: boolean;
/** Additional CSS classes */
className?: string;
/** Called when video time updates */
onTimeUpdate?: (currentTime: number) => void;
/** Called when video duration changes */
onDurationChange?: (duration: number) => void;
/** Called when video starts playing */
onPlay?: () => void;
/** Called when video pauses */
onPause?: () => void;
/** Called when video ends */
onEnded?: () => void;
/** Called when video error occurs */
onError?: (error: string) => void;
/** Called when download button is clicked */
onDownload?: () => void;
/** Filename for downloaded video */
downloadFileName?: string;
/** External loading state */
loading?: boolean;
/** Loading message to display */
loadingMessage?: string;
/** Show map component */
showMap?: boolean;
/** Initial map position */
mapPosition?: {
lat: number;
lng: number;
} | null;
/** Map container height */
mapHeight?: string;
/** Show G-sensor event component */
showEventComponent?: boolean;
/** Map style to use */
mapStyle?: keyof typeof import('./hooks/useMapStyle').MAP_STYLES;
/** Speed unit for display */
speedUnit?: 'km/h' | 'mph';
}
/**
* VideoPlayer state interface
* 비디오 플레이어의 내부 상태를 정의합니다.
*/
export interface VideoState {
playing: boolean;
muted: boolean;
volume: number;
currentTime: number;
duration: number;
loading: boolean;
error: string | null;
isHorizontalFlipped: boolean;
isVerticalFlipped: boolean;
showMap: boolean;
showEventComponent: boolean;
showControls: boolean;
controlsTimer: NodeJS.Timeout | null;
autoParsedGpsPoints: import('./utils/gpsParser').GpsPoint[] | null;
autoParsedSensorData: import('./utils/sensorParser').IAccel[] | null;
parsingInProgress: boolean;
}
/**
* Video control handlers interface
* 비디오 컨트롤 관련 핸들러 함수들의 타입을 정의합니다.
*/
export interface VideoControlHandlers {
handlePlayPause: () => void;
handleSeek: (e: React.ChangeEvent<HTMLInputElement>) => void;
handleVolumeChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
handleMute: () => void;
handleFullscreen: () => void;
handleFrameStep: (direction: 'forward' | 'backward') => void;
handleToggleHorizontalFlip: () => void;
handleToggleVerticalFlip: () => void;
handleToggleMap: () => void;
handleMouseEnter: () => void;
handleMouseLeave: () => void;
}
//# sourceMappingURL=types.d.ts.map