UNPKG

analytica-frontend-lib

Version:

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

102 lines 2.68 kB
import type { BaseApiClient } from '../../types/api'; import { SimulatedPerformanceTag } from '../SimulatedStudentDetailsModal/types'; /** * Essay competency performance item * Represents a single competency (1-5) with its average score */ export interface EssayCompetencyPerformance { number: number; name: string; averageScore: number; averagePercentage: number; essaysCount: number; } /** * Essay student info for details modal */ export interface EssayStudentInfo { id: string; name: string; school: string; schoolYear: string; class: string; } /** * Essay student details data */ export interface EssayStudentDetailsData { student: EssayStudentInfo; overallAverage: number; overallPercentage: number; performance: SimulatedPerformanceTag; essaysCount: number; competencies: EssayCompetencyPerformance[]; } /** * Parameters for fetching essay student details */ export interface EssayStudentDetailsParams { userInstitutionId: string; period: string; schoolIds?: string[]; schoolYearIds?: string[]; classIds?: string[]; } /** * API response structure */ export interface EssayStudentDetailsApiResponse { message: string; data: EssayStudentDetailsData; } /** * Hook state */ export interface UseEssayStudentDetailsState { data: EssayStudentDetailsData | null; loading: boolean; error: string | null; } /** * Hook return type */ export interface UseEssayStudentDetailsReturn extends UseEssayStudentDetailsState { fetchDetails: (params: EssayStudentDetailsParams) => Promise<void>; reset: () => void; } /** * Modal labels for internationalization */ export interface EssayStudentDetailsLabels { loading?: string; noData?: string; competencies?: string; noCompetencies?: string; essays?: string; } /** * Props for EssayStudentDetailsModal component */ export interface EssayStudentDetailsModalProps { /** API client for making requests */ readonly api: BaseApiClient; /** Whether modal is open */ readonly isOpen: boolean; /** Close callback */ readonly onClose: () => void; /** User institution ID to fetch details for */ readonly userInstitutionId: string | null; /** Student name for title */ readonly studentName?: string; /** Period filter */ readonly period: string; /** School IDs filter */ readonly schoolIds?: string[]; /** School year IDs filter */ readonly schoolYearIds?: string[]; /** Class IDs filter */ readonly classIds?: string[]; /** Custom labels */ readonly labels?: EssayStudentDetailsLabels; } //# sourceMappingURL=types.d.ts.map