UNPKG

analytica-frontend-lib

Version:

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

77 lines (76 loc) 2.13 kB
// src/hooks/useSimulations.ts import { useCallback, useMemo } from "react"; var BASE_URL = "/performance/simulations"; var segment = (value) => encodeURIComponent(value); var createUseSimulations = (apiClient) => () => { const fetchStudents = useCallback( async (filters = {}) => { const { page = 1, limit = 20, search, classIds } = filters; const response = await apiClient.get( `${BASE_URL}/students`, { params: { page, limit, search, classIds } } ); return response.data.data.students; }, [] ); const fetchStudentSimulations = useCallback( async (userInstitutionId, filters = {}) => { const { page = 1, limit = 20 } = filters; const response = await apiClient.get( `${BASE_URL}/students/${segment(userInstitutionId)}`, { params: { page, limit } } ); return response.data.data; }, [] ); const fetchSimulationDetail = useCallback( async (userInstitutionId, simulationId) => { const response = await apiClient.get( `${BASE_URL}/students/${segment(userInstitutionId)}/${segment(simulationId)}` ); return response.data.data; }, [] ); const fetchNote = useCallback( async (userInstitutionId, simulationId) => { const response = await apiClient.get( `${BASE_URL}/students/${segment(userInstitutionId)}/${segment(simulationId)}/note` ); return response.data.data; }, [] ); const saveNote = useCallback( async (userInstitutionId, simulationId, note) => { const response = await apiClient.post( `${BASE_URL}/students/${segment(userInstitutionId)}/${segment(simulationId)}/note`, { note } ); return response.data.data; }, [] ); return useMemo( () => ({ fetchStudents, fetchStudentSimulations, fetchSimulationDetail, fetchNote, saveNote }), [ fetchStudents, fetchStudentSimulations, fetchSimulationDetail, fetchNote, saveNote ] ); }; export { createUseSimulations }; //# sourceMappingURL=chunk-37WFJLC5.mjs.map