analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
64 lines • 2.37 kB
TypeScript
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