UNPKG

analytica-frontend-lib

Version:

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

89 lines 3.63 kB
import type { BaseApiClient } from '../types/api'; import type { ActivityHistoryResponse, ActivityTableItem, ActivityHistoryFilters, ActivityPagination, ActivityFilterOption } from '../types/activitiesHistory'; /** * Options for configuring the useActivitiesHistory hook */ export interface UseActivitiesHistoryOptions { /** Filter by activity category (PROVA, ATIVIDADE, etc.) */ activityCategory?: 'PROVA' | 'ATIVIDADE'; } /** * API filter options extracted from response */ export interface ActivityApiFilterOptions { schools: ActivityFilterOption[]; classes: ActivityFilterOption[]; subjects: ActivityFilterOption[]; schoolYears: ActivityFilterOption[]; } /** * Hook state interface */ export interface UseActivitiesHistoryState { activities: ActivityTableItem[]; loading: boolean; error: string | null; pagination: ActivityPagination; apiFilterOptions: ActivityApiFilterOptions; } /** * Hook return type */ export interface UseActivitiesHistoryReturn extends UseActivitiesHistoryState { fetchActivities: (filters?: ActivityHistoryFilters) => Promise<void>; } /** * Default pagination values */ export declare const DEFAULT_ACTIVITIES_PAGINATION: ActivityPagination; /** * Default API filter options */ export declare const DEFAULT_ACTIVITY_FILTER_OPTIONS: ActivityApiFilterOptions; /** * Transform API response to table item format * @param activity - Activity from API response * @returns Formatted activity for table display */ export declare const transformActivityToTableItem: (activity: ActivityHistoryResponse) => ActivityTableItem; /** * Extract unique filter options from activities API response. * Delegates to the shared extractBreakdownFilterOptions helper. */ export declare const extractActivityFilterOptions: (activities: ActivityHistoryResponse[]) => ActivityApiFilterOptions; /** * Build the `/activities/history` query params from the raw TableProvider filter * keys. TableProvider emits UI-category keys (`subject`, `school`, `class`, * `schoolYear`, `status`, `creatorType`) as arrays; the backend expects a * different, mostly single-value contract. This adapter renames each key and * collapses/serializes to what the backend actually reads. Mirrors * `buildFiltersFromParams` in RecommendedLessonsHistory. * * @param filters - Raw table params (arrays under UI keys) plus page/limit/search/sort * @param activityCategory - Optional value forwarded as the `type` param */ export declare const buildActivityHistoryQueryParams: (filters?: Record<string, unknown>, activityCategory?: string) => Record<string, unknown>; /** * Factory function to create useActivitiesHistory hook * * @param apiClient - API client instance (axios, fetch wrapper, etc.) * @param options - Hook configuration options * @returns Hook for managing activities history * * @example * ```tsx * import { createUseActivitiesHistory } from 'analytica-frontend-lib'; * import api from '@/services/apiService'; * * const useActivitiesHistory = createUseActivitiesHistory(api, { activityCategory: 'ATIVIDADE' }); * * // In your component * const { activities, loading, fetchActivities, apiFilterOptions } = useActivitiesHistory(); * ``` */ export declare const createUseActivitiesHistory: (apiClient: BaseApiClient, options?: UseActivitiesHistoryOptions) => () => UseActivitiesHistoryReturn; /** * Alias for createUseActivitiesHistory */ export declare const createActivitiesHistoryHook: (apiClient: BaseApiClient, options?: UseActivitiesHistoryOptions) => () => UseActivitiesHistoryReturn; //# sourceMappingURL=useActivitiesHistory.d.ts.map