react-chrono-extra
Version:
A Modern Timeline component for React
57 lines (56 loc) • 1.43 kB
TypeScript
/// <reference types="@types/react" />
import { ForwardRefExoticComponent, ReactNode } from 'react';
import { Theme } from './Theme';
import { TextOrContentModel } from '../components/timeline-elements/timeline-card-content/text-or-content';
/**
* Represents the type of media (video or image).
*/
export type MediaType = 'VIDEO' | 'IMAGE';
/**
* Represents the source of a media element.
*/
export interface MediaSource {
type?: string;
url: string;
}
/**
* Represents the model for media content.
*/
export interface Media {
name?: string;
source: MediaSource;
type: MediaType;
}
/**
* Represents the state of media playback.
*/
export interface MediaState {
id?: string;
paused?: boolean;
playing?: boolean;
}
/**
* Represents the model for media within a card.
*/
export interface CardMediaModel {
active?: boolean;
cardHeight?: number;
content?: string | ReactNode;
detailsText?: ForwardRefExoticComponent<TextOrContentModel>;
hideMedia: boolean;
id?: string;
media: Media;
onMediaStateChange: (state: MediaState) => void;
paused?: boolean;
progressRef?: React.RefObject<HTMLDivElement>;
remainInterval?: number;
resuming?: boolean;
showProgressBar?: boolean;
slideshowActive?: boolean;
startWidth?: number;
theme?: Theme;
title?: string;
triangleDir?: string;
url?: string;
urlClassName?: string;
}