UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

75 lines 2.72 kB
import type { Lesson } from '../../types/lessons'; import type { WhiteboardImage } from '../../Whiteboard/index'; import type { BaseApiClient } from '../../types/api'; import type { ActivityModelTableItem } from '../../types/activitiesHistory'; /** * Extended lesson type with optional media properties */ interface LessonWithMedia extends Lesson { videoSrc?: string; videoPoster?: string; videoSubtitles?: string; podcastSrc?: string; podcastTitle?: string; boardImages?: WhiteboardImage[]; } type PreviewLesson = LessonWithMedia & { position?: number; }; interface LessonPreviewProps { title?: string; lessons?: PreviewLesson[]; onRemoveAll?: () => void; onRemoveLesson?: (lessonId: string) => void; className?: string; onReorder?: (orderedLessons: PreviewLesson[]) => void; /** * Emits the current ordered list (with positions) whenever it changes. */ onPositionsChange?: (orderedLessons: PreviewLesson[]) => void; /** * Callback when video time updates */ onVideoTimeUpdate?: (lessonId: string, time: number) => void; /** * Callback when video completes */ onVideoComplete?: (lessonId: string) => void; /** * Callback when podcast ends */ onPodcastEnded?: (lessonId: string) => void | Promise<void>; /** * Get initial timestamp for a lesson */ getInitialTimestamp?: (lessonId: string) => number; /** User ID used to scope video-progress localStorage keys per user */ userId?: string; /** * Callback when create new activity is clicked */ onCreateNewActivity?: () => void; /** * API client for fetching activity models */ apiClient: BaseApiClient; /** * Callback when an activity model is selected */ onActivitySelected?: (model: ActivityModelTableItem) => void; /** * Callback when edit activity button is clicked */ onEditActivity?: (activity: ActivityModelTableItem) => void; /** * Callback when remove activity button is clicked */ onRemoveActivity?: () => void; /** * Initial selected activity (if any) */ selectedActivity?: ActivityModelTableItem | null; } export declare const LessonPreview: ({ title, lessons, onRemoveAll, onRemoveLesson, className, onReorder, onPositionsChange, onVideoTimeUpdate, onVideoComplete, onPodcastEnded, getInitialTimestamp, userId, onCreateNewActivity, apiClient, onActivitySelected, onEditActivity, onRemoveActivity, selectedActivity: initialSelectedActivity, }: LessonPreviewProps) => import("react/jsx-runtime").JSX.Element; export type { LessonPreviewProps, PreviewLesson }; //# sourceMappingURL=LessonPreview.d.ts.map