analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
52 lines • 1.55 kB
TypeScript
import type { BaseApiClient } from '../../types/api';
/**
* Subject item from simulated subjects API
*/
export interface SimulatedSubjectItem {
id: string;
name: string;
color: string | null;
icon: string | null;
}
/**
* API response for simulated subjects
*/
export interface SimulatedSubjectsApiResponse {
message: string;
data: SimulatedSubjectItem[];
}
/**
* Hook state
*/
export interface UseSimulatedSubjectsState {
subjects: SimulatedSubjectItem[];
loading: boolean;
error: string | null;
}
/**
* Hook return type
*/
export interface UseSimulatedSubjectsReturn extends UseSimulatedSubjectsState {
fetchSubjects: (areaKnowledgeIds?: string[] | null) => Promise<void>;
reset: () => void;
}
/**
* Props for SimulatedSubjectMenu component
*/
export interface SimulatedSubjectMenuProps {
/** API client instance */
readonly api: BaseApiClient;
/** Area knowledge ID to filter subjects (null for all) */
readonly areaKnowledgeId: string | null;
/** Related IDs for merged areas (includes all IDs when area was deduplicated) */
readonly relatedIds?: string[];
/** Currently selected subject ID (null means "Todos") */
readonly selectedSubjectId: string | null;
/** Callback when subject changes (null means "Todos") */
readonly onSubjectChange: (subjectId: string | null) => void;
/** External loading state */
readonly loading?: boolean;
/** Label text (default: "Disciplina") */
readonly label?: string;
}
//# sourceMappingURL=types.d.ts.map