UNPKG

analytica-frontend-lib

Version:

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

78 lines 2.38 kB
import { ComponentType } from 'react'; import type { CategoryConfig } from '../../CheckBoxGroup/index'; import type { FetchStudentsByFiltersFunction } from '../../utils/studentTypes'; export type { RecipientItem } from '../useAlertForm/index'; export type { CategoryConfig } from '../../CheckBoxGroup/index'; export type { Item } from '../../CheckBoxGroup/index'; export interface StepConfig { id: string; label: string; component?: ComponentType<StepComponentProps>; validate?: (formData: unknown) => boolean | string; shouldShow?: (formData: unknown) => boolean; } export interface StepComponentProps { onNext?: () => void; onPrevious?: () => void; formData?: unknown; } export interface LabelsConfig { pageTitle?: string; modalTitle?: string; sendButton?: string; cancelButton?: string; nextButton?: string; previousButton?: string; finishButton?: string; titleLabel?: string; titlePlaceholder?: string; messageLabel?: string; messagePlaceholder?: string; imageLabel?: string; recipientsTitle?: string; recipientsDescription?: string; dateLabel?: string; timeLabel?: string; sendTodayLabel?: string; sendCopyToEmailLabel?: string; previewTitle?: string; previewWarning?: string; noRecipientsSelected?: string; titleNotDefined?: string; messageNotDefined?: string; dateNotDefined?: string; } export interface AlertsConfig { categories: CategoryConfig[]; steps?: StepConfig[]; labels?: LabelsConfig; behavior?: { showAlertsTable?: boolean; allowImageAttachment?: boolean; allowScheduling?: boolean; allowEmailCopy?: boolean; onSendAlert?: (alertData: AlertData) => Promise<void>; fetchStudentsByFilters?: FetchStudentsByFiltersFunction; }; } export interface AlertData { title: string; message: string; image?: string | File | null; date: string; time: string; sendToday: boolean; /** Whether to also send a copy of the alert to each recipient's email. */ sendCopyToEmail?: boolean; recipientCategories: Record<string, { selectedIds: string[]; allSelected: boolean; }>; } export interface AlertTableItem { id: string; title: string; sentAt: string; recipientsCount?: number; } //# sourceMappingURL=types.d.ts.map