UNPKG

analytica-frontend-lib

Version:

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

78 lines 3.27 kB
import type { BaseApiClient } from '../types/api'; import type { ActivityDetailsData, ActivityDetailsQueryParams } from '../types/activityDetails'; import type { QuestionsAnswersByStudentResponse, SaveQuestionCorrectionPayload } from '../utils/studentActivityCorrection/index'; /** * Hook return type for activity details */ export interface StudentFeedbackResponse { teacherFeedback: string | null; attachment: string | null; } export interface UseActivityDetailsReturn { /** * Fetch activity details from API * @param id - Activity ID * @param params - Query parameters for pagination * @returns Activity details data */ fetchActivityDetails: (id: string, params?: ActivityDetailsQueryParams) => Promise<ActivityDetailsData>; /** * Fetch student correction data from API * @param activityId - Activity ID * @param studentId - Student ID * @returns Student answers response data */ fetchStudentCorrection: (activityId: string, studentId: string) => Promise<QuestionsAnswersByStudentResponse>; /** * Fetch teacher feedback for a student activity * @param activityId - Activity ID * @param studentId - Student ID * @returns Teacher feedback and attachment */ fetchStudentFeedback: (activityId: string, studentId: string) => Promise<StudentFeedbackResponse>; /** * Fetch teacher feedback for a student activity, returning null on error * @param activityId - Activity ID * @param studentId - Student ID * @returns Teacher feedback and attachment, or null if fetch fails */ safeFetchStudentFeedback: (activityId: string, studentId: string) => Promise<StudentFeedbackResponse | null>; /** * Submit observation for student activity * @param actId - Activity ID * @param studentId - Student ID * @param observation - Observation text * @param file - Attached file (optional) * @returns The attachment URL if a file was uploaded, null otherwise */ submitObservation: (actId: string, studentId: string, observation: string, file: File | null, existingAttachment: string | null) => Promise<string | null>; /** * Submit question correction for student activity * @param activityId - Activity ID * @param studentId - Student ID * @param payload - Question correction payload */ submitQuestionCorrection: (activityId: string, studentId: string, payload: SaveQuestionCorrectionPayload) => Promise<void>; } /** * Hook for managing activity details API calls * Provides functions to fetch activity details, student corrections, and submit observations/corrections * * @param apiClient - API client instance for making requests * @returns Hook return object with API functions * * @example * ```tsx * import { useActivityDetails } from 'analytica-frontend-lib'; * import { useApi } from './services/apiService'; * * function ActivityDetailsPage() { * const api = useApi(); * const { fetchActivityDetails, fetchStudentCorrection } = useActivityDetails(api); * * // Use functions... * } * ``` */ export declare const useActivityDetails: (apiClient: BaseApiClient) => UseActivityDetailsReturn; //# sourceMappingURL=useActivityDetails.d.ts.map