UNPKG

analytica-frontend-lib

Version:

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

64 lines 2.37 kB
import type { BaseApiClient } from '../../types/api'; import type { ActivityModelFilters, ActivityModelResponse, ActivityModelTableItem, ActivityPagination } from '../../types/activitiesHistory'; /** * Options for configuring the useActivityDrafts hook */ export interface UseActivityDraftsOptions { /** Filter by activity category (PROVA, ATIVIDADE, etc.) */ activityCategory?: 'PROVA' | 'ATIVIDADE'; } /** * Hook state interface */ export interface UseActivityDraftsState { drafts: ActivityModelTableItem[]; loading: boolean; error: string | null; pagination: ActivityPagination; } /** * Hook return type */ export interface UseActivityDraftsReturn extends UseActivityDraftsState { fetchDrafts: (filters?: ActivityModelFilters) => Promise<void>; deleteDraft: (id: string) => Promise<void>; } /** * Default pagination values */ export declare const DEFAULT_DRAFTS_PAGINATION: ActivityPagination; /** * Transform API response to table item format * @param draft - Draft from API response * @param subjectsMap - Optional map of subject IDs to names * @returns Formatted draft for table display */ export declare const transformDraftToTableItem: (draft: ActivityModelResponse, subjectsMap?: Map<string, string>) => ActivityModelTableItem; /** * Factory function to create useActivityDrafts hook * * @param apiClient - API client instance (axios, fetch wrapper, etc.) * @param options - Hook configuration options * @returns Hook for managing activity drafts * * @example * ```tsx * // For activities * import { createUseActivityDrafts } from 'analytica-frontend-lib'; * import api from '@/services/apiService'; * * const useActivityDrafts = createUseActivityDrafts(api, { activityCategory: 'ATIVIDADE' }); * * // For exams (provas) * const useExamDrafts = createUseActivityDrafts(api, { activityCategory: 'PROVA' }); * * // In your component * const { drafts, loading, fetchDrafts, deleteDraft } = useActivityDrafts(); * ``` */ export declare const createUseActivityDrafts: (apiClient: BaseApiClient, options?: UseActivityDraftsOptions) => () => UseActivityDraftsReturn; /** * Alias for createUseActivityDrafts */ export declare const createActivityDraftsHook: (apiClient: BaseApiClient, options?: UseActivityDraftsOptions) => () => UseActivityDraftsReturn; //# sourceMappingURL=useActivityDrafts.d.ts.map