analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
76 lines • 2.85 kB
TypeScript
import type { BaseApiClient } from '../types/api';
import type { CategoryConfig } from '../components/CheckBoxGroup/CheckBoxGroup';
import type { KnowledgeStructureState, Bank, BankYear, KnowledgeArea } from '../types/activityFilters';
import { QUESTION_TYPE } from '../components/Quiz/useQuizStore';
/**
* Configuration options for the useActivityFiltersData hook
*/
export interface UseActivityFiltersDataOptions {
/**
* Selected subjects for loading knowledge structure
*/
selectedSubjects: string[];
/**
* Institution ID for loading question types (optional)
*/
institutionId?: string | null;
}
/**
* Return type for the useActivityFiltersData hook
*/
export interface UseActivityFiltersDataReturn {
banks: Bank[];
bankYears: BankYear[];
loadingBanks: boolean;
banksError: string | null;
loadBanks: () => Promise<void>;
knowledgeAreas: KnowledgeArea[];
loadingSubjects: boolean;
subjectsError: string | null;
loadKnowledgeAreas: () => Promise<void>;
knowledgeStructure: KnowledgeStructureState;
knowledgeCategories: CategoryConfig[];
handleCategoriesChange: (updatedCategories: CategoryConfig[]) => void;
selectedKnowledgeSummary: {
topics: string[];
subtopics: string[];
contents: string[];
};
enableSummary: boolean;
loadTopics: (subjectIds: string[]) => Promise<void>;
loadSubtopics: (topicIds: string[], options?: {
forceApi?: boolean;
}) => Promise<void>;
loadContents: (subtopicIds: string[]) => Promise<void>;
questionTypes: QUESTION_TYPE[];
loadingQuestionTypes: boolean;
questionTypesError: string | null;
loadQuestionTypes: () => Promise<void>;
}
/**
* Create an activity filters data hook with API client injection.
* @param apiClient - API client instance
*/
export declare const createUseActivityFiltersData: (apiClient: BaseApiClient) => (options: UseActivityFiltersDataOptions) => UseActivityFiltersDataReturn;
/**
* Create a pre-configured activity filters data hook
* This is a convenience function that returns a hook ready to use
*
* @param apiClient - API client instance
* @returns Pre-configured useActivityFiltersData hook
*
* @example
* // In your app setup
* import { createActivityFiltersDataHook } from 'analytica-frontend-lib';
* import api from './services/api';
*
* export const useActivityFiltersData = createActivityFiltersDataHook(api);
*
* // Then use directly in components
* const { banks, knowledgeAreas, loadBanks } = useActivityFiltersData({
* selectedSubjects: [],
* institutionId: 'institution-id',
* });
*/
export declare const createActivityFiltersDataHook: (apiClient: BaseApiClient) => (options: UseActivityFiltersDataOptions) => UseActivityFiltersDataReturn;
//# sourceMappingURL=useActivityFiltersData.d.ts.map