UNPKG

analytica-frontend-lib

Version:

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

75 lines 2.43 kB
import type { CategoryConfig } from '../../CheckBoxGroup/index'; export type { CategoryConfig, Item } from '../../CheckBoxGroup/index'; /** * Form data structure for sending lesson */ export interface SendLessonFormData { /** Lesson title (Step 1) */ title: string; /** Notification message (Step 1) */ notification?: string; /** Array of students to send lesson to (Step 2) */ students: Array<{ studentId: string; userInstitutionId: string; }>; /** Start date in YYYY-MM-DD format (Step 3) */ startDate: string; /** Start time in HH:MM format (Step 3) */ startTime: string; /** End date in YYYY-MM-DD format (Step 3) */ finalDate: string; /** End time in HH:MM format (Step 3) */ finalTime: string; /** Whether attached activities can be retried by the student. * Only relevant when the model has activity drafts attached. */ canRetry?: boolean; } /** * Modal props */ export interface SendLessonModalProps { /** Controls modal visibility */ isOpen: boolean; /** Callback when modal is closed */ onClose: () => void; /** Callback when lesson is submitted */ onSubmit: (data: SendLessonFormData) => Promise<void>; /** Recipient categories configuration (same format as CheckboxGroup) */ categories: CategoryConfig[]; /** Callback when categories change (optional - for controlled state) */ onCategoriesChange?: (categories: CategoryConfig[]) => void; /** Loading state for submit button */ isLoading?: boolean; /** Callback when submission fails (optional - if not provided, error propagates) */ onError?: (error: unknown) => void; /** Modal title for display */ modalTitle?: string; /** When true, render the "Permitir refazer?" radio on step 3. * Caller decides based on whether the selected model has any * activity drafts attached. Defaults to false (no radio shown). */ hasAttachedActivities?: boolean; } /** * Step validation errors */ export interface StepErrors { title?: string; students?: string; startDate?: string; startTime?: string; finalDate?: string; finalTime?: string; } /** * Step state for stepper */ export type StepState = 'pending' | 'current' | 'completed'; /** * Step configuration */ export interface StepConfig { label: string; state: StepState; } //# sourceMappingURL=types.d.ts.map