UNPKG

analytica-frontend-lib

Version:

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

60 lines 2.32 kB
import type { BaseApiClient } from '../types/api'; import type { ActivityModelResponse, ActivityModelTableItem, ActivityModelFilters, ActivityPagination } from '../types/activitiesHistory'; /** * Options for configuring the useActivityModels hook */ export interface UseActivityModelsOptions { /** Filter by activity category (PROVA, ATIVIDADE, etc.) */ activityCategory?: 'PROVA' | 'ATIVIDADE'; } /** * Hook state interface */ export interface UseActivityModelsState { models: ActivityModelTableItem[]; loading: boolean; error: string | null; pagination: ActivityPagination; } /** * Hook return type */ export interface UseActivityModelsReturn extends UseActivityModelsState { fetchModels: (filters?: ActivityModelFilters, subjectsMap?: Map<string, string>) => Promise<void>; deleteModel: (id: string) => Promise<boolean>; } /** * Default pagination values */ export declare const DEFAULT_MODELS_PAGINATION: ActivityPagination; /** * Transform API response to table item format * @param model - Activity model from API response * @param subjectsMap - Map of subject IDs to subject names (fallback if subject is not in response) * @returns Formatted model for table display */ export declare const transformModelToTableItem: (model: ActivityModelResponse, subjectsMap?: Map<string, string>) => ActivityModelTableItem; /** * Factory function to create useActivityModels hook * * @param apiClient - API client instance (axios, fetch wrapper, etc.) * @param options - Hook configuration options * @returns Hook for managing activity models * * @example * ```tsx * import { createUseActivityModels } from 'analytica-frontend-lib'; * import api from '@/services/apiService'; * * const useActivityModels = createUseActivityModels(api, { activityCategory: 'ATIVIDADE' }); * * // In your component * const { models, loading, fetchModels, deleteModel } = useActivityModels(); * ``` */ export declare const createUseActivityModels: (apiClient: BaseApiClient, options?: UseActivityModelsOptions) => () => UseActivityModelsReturn; /** * Alias for createUseActivityModels */ export declare const createActivityModelsHook: (apiClient: BaseApiClient, options?: UseActivityModelsOptions) => () => UseActivityModelsReturn; //# sourceMappingURL=useActivityModels.d.ts.map