analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
27 lines • 1.44 kB
TypeScript
import type { BaseApiClient } from '../types/api';
import type { SimulationsStudentsPage, SimulationsStudentsFilters, SimulationsListData, SimulationsListFilters, SimulationDetailData, NoteData } from '../types/simulations';
/**
* Hook return type for the teacher-facing Simulations feature.
*
* The hook exposes imperative fetchers (rather than holding everything in
* state) because the UI loads data lazily across three nested levels:
* students list -> a student's simulations -> a simulation's questions.
*/
export interface UseSimulationsReturn {
fetchStudents: (filters?: SimulationsStudentsFilters) => Promise<SimulationsStudentsPage>;
fetchStudentSimulations: (userInstitutionId: string, filters?: SimulationsListFilters) => Promise<SimulationsListData>;
fetchSimulationDetail: (userInstitutionId: string, simulationId: string) => Promise<SimulationDetailData>;
fetchNote: (userInstitutionId: string, simulationId: string) => Promise<NoteData | null>;
saveNote: (userInstitutionId: string, simulationId: string, note: string) => Promise<NoteData | null>;
}
/**
* Factory that binds an API client to the Simulations hook.
*
* @example
* ```tsx
* const useSimulations = createUseSimulations(api);
* const { fetchStudents } = useSimulations();
* ```
*/
export declare const createUseSimulations: (apiClient: BaseApiClient) => () => UseSimulationsReturn;
//# sourceMappingURL=useSimulations.d.ts.map