UNPKG

analytica-frontend-lib

Version:

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

59 lines 2.12 kB
import type { BaseApiClient } from '../types/api'; import type { QuestionsFilterBody, Question, Pagination } from '../types/questions'; /** * Hook state interface */ interface UseQuestionsListState { questions: Question[]; pagination: Pagination | null; loading: boolean; loadingMore: boolean; error: string | null; currentFilters: Partial<QuestionsFilterBody> | null; } /** * Hook return type */ export interface UseQuestionsListReturn extends UseQuestionsListState { fetchQuestions: (filters?: Partial<QuestionsFilterBody>, append?: boolean) => Promise<void>; fetchRandomQuestions: (count: number, filters?: Partial<QuestionsFilterBody>) => Promise<Question[]>; fetchQuestionsByIds: (questionIds: string[]) => Promise<Question[]>; loadMore: () => Promise<void>; reset: () => void; } /** * Create a questions list hook with API client injection. * @param apiClient - API client instance * @returns Pre-configured useQuestionsList hook * * @example * // In your app setup * import { createUseQuestionsList } from 'analytica-frontend-lib'; * import api from './services/api'; * * export const useQuestionsList = createUseQuestionsList(api); * * // Then use directly in components * const { questions, fetchQuestions, loadMore } = useQuestionsList(); */ export declare const createUseQuestionsList: (apiClient: BaseApiClient) => () => UseQuestionsListReturn; /** * Create a pre-configured questions list hook * This is a convenience function that returns a hook ready to use * * @param apiClient - API client instance * @returns Pre-configured useQuestionsList hook * * @example * // In your app setup * import { createQuestionsListHook } from 'analytica-frontend-lib'; * import api from './services/api'; * * export const useQuestionsList = createQuestionsListHook(api); * * // Then use directly in components * const { questions, fetchQuestions, loadMore } = useQuestionsList(); */ export declare const createQuestionsListHook: (apiClient: BaseApiClient) => () => UseQuestionsListReturn; export {}; //# sourceMappingURL=useQuestionsList.d.ts.map