analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
51 lines • 2.74 kB
TypeScript
import type { SubjectEnum } from '../../enums/SubjectEnum';
import type { ActivityTableItem, ActivityHistoryFilters, ActivitiesHistoryApiResponse, ActivityUserFilterData, ActivityModelTableItem, ActivityModelFilters, ActivityModelsApiResponse } from '../../types/activitiesHistory';
/**
* Props for the ActivitiesHistory component
*/
export interface ActivitiesHistoryProps {
/** Function to fetch activities history from API */
fetchActivitiesHistory: (filters?: ActivityHistoryFilters) => Promise<ActivitiesHistoryApiResponse>;
/** Function to fetch activity models from API */
fetchActivityModels: (filters?: ActivityModelFilters) => Promise<ActivityModelsApiResponse>;
/** Function to delete an activity model */
deleteActivityModel: (id: string) => Promise<void>;
/** Callback when create activity button is clicked */
onCreateActivity: () => void;
/** Callback when create model button is clicked */
onCreateModel: () => void;
/** Callback when a history row is clicked */
onRowClick: (row: ActivityTableItem) => void;
/** Callback when send activity button is clicked on a model */
onSendActivity?: (model: ActivityModelTableItem) => void;
/** Callback when edit model button is clicked */
onEditModel?: (model: ActivityModelTableItem) => void;
/** Image for empty state */
emptyStateImage?: string;
/** Image for no search results */
noSearchImage?: string;
/** Function to map subject name to SubjectEnum */
mapSubjectNameToEnum?: (subjectName: string) => SubjectEnum | null;
/** User data for populating filter options */
userFilterData?: ActivityUserFilterData;
/**
* Map of subject IDs to names for models display.
* IMPORTANT: This Map should be memoized with useMemo in the parent component
* to avoid unnecessary re-fetches when the MODELS tab is active.
* @example
* const subjectsMap = useMemo(() => {
* const map = new Map();
* subjects.forEach(s => map.set(s.id, s.name));
* return map;
* }, [subjects]);
*/
subjectsMap?: Map<string, string>;
}
/**
* ActivitiesHistory component
* Displays activities history with tabs for history, drafts, and models.
* Each tab is an independent component that manages its own state and data fetching.
*/
export declare const ActivitiesHistory: ({ fetchActivitiesHistory, fetchActivityModels, deleteActivityModel, onCreateActivity, onCreateModel, onRowClick, onSendActivity, onEditModel, emptyStateImage, noSearchImage, mapSubjectNameToEnum, userFilterData, subjectsMap, }: ActivitiesHistoryProps) => import("react/jsx-runtime").JSX.Element;
export default ActivitiesHistory;
//# sourceMappingURL=ActivitiesHistory.d.ts.map