UNPKG

analytica-frontend-lib

Version:

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

123 lines 4.15 kB
import { REPORT_MODAL_VARIANT } from '../types/common'; /** * Time + percentage pair returned by the backend for platform/hours breakdowns. */ export interface AccessReportTimePercentage { time: string; percentage: number; } /** * User context returned by the backend inside every access report response. */ export interface AccessReportUser { id: string; name: string; profileType: string; school: string; group: string | null; class: string | null; year: number; } /** * Platform access breakdown — web vs mobile. */ export interface AccessReportByPlatform { web: AccessReportTimePercentage; mobile: AccessReportTimePercentage; } /** * Full 200 response for STUDENT access report. * Mirrors backend shape from GET /access-report/access/user/:userId (student variant). */ export interface AccessReportStudentData { user: AccessReportUser; accessData: { totalTime: string; activitiesTime: string; contentTime: string; recommendedLessonsTime: string; simulationsTime: string; questionnairesTime: string; accessCount: number; lastAccess: string | null; }; accessByPlatform: AccessReportByPlatform; hoursByItem: { activities: AccessReportTimePercentage; content: AccessReportTimePercentage; simulations: AccessReportTimePercentage; questionnaires: AccessReportTimePercentage; recommendedLessons: AccessReportTimePercentage; }; } /** * Full 200 response for TEACHER / UNIT_MANAGER / REGIONAL_MANAGER access report. * Mirrors backend shape from GET /access-report/access/user/:userId (professional variant). */ export interface AccessReportProfessionalData { user: AccessReportUser; accessData: { totalTime: string; activitiesTime: string; recommendedLessonsTime: string; accessCount: number; lastAccess: string | null; }; accessByPlatform: AccessReportByPlatform; hoursByItem: { activities: AccessReportTimePercentage; recommendedLessons: AccessReportTimePercentage; }; } /** @deprecated Use {@link REPORT_MODAL_VARIANT} instead. Re-exported for backwards compatibility. */ export { REPORT_MODAL_VARIANT as AccessReportModalVariant } from '../types/common'; /** * Access count by period item for bar chart */ export interface AccessCountByPeriodItem { label: string; count: number; } interface AccessReportModalBaseProps { isOpen: boolean; onClose: () => void; /** Modal title (default: "Relatório de acesso") */ title?: string; loading?: boolean; error?: string | null; /** Optional access count by period data for rendering the access count chart */ accessCountByPeriod?: AccessCountByPeriodItem[]; } type AccessReportModalStudentProps = { variant: REPORT_MODAL_VARIANT.STUDENT; data: AccessReportStudentData | null; }; type AccessReportModalProfessionalProps = { variant: REPORT_MODAL_VARIANT.PROFESSIONAL; data: AccessReportProfessionalData | null; }; export type AccessReportModalProps = AccessReportModalBaseProps & (AccessReportModalStudentProps | AccessReportModalProfessionalProps); /** * AccessReportModal component * * Displays a modal with access data for a user. * * Two variants driven by the profile type: * - `STUDENT` — 6 metric boxes (totalTime, contentTime, recommendedLessonsTime, * simulationsTime, accessCount, lastAccess) + platform pie chart + hours-by-item pie chart * - `PROFESSIONAL` — 3 metric boxes (totalTime, accessCount, lastAccess) + * platform pie chart only (no hours-by-item breakdown for professionals) * * @example * ```tsx * <AccessReportModal * isOpen={isOpen} * onClose={() => setIsOpen(false)} * variant={REPORT_MODAL_VARIANT.STUDENT} * data={apiResponse.data} * /> * ``` */ export declare const AccessReportModal: ({ isOpen, onClose, title, loading, error, accessCountByPeriod, ...variantProps }: AccessReportModalProps) => import("react/jsx-runtime").JSX.Element; export default AccessReportModal; //# sourceMappingURL=AccessReportModal.d.ts.map