mui-toolpad-extended-tuni
Version:
45 lines (44 loc) • 1.48 kB
TypeScript
/** @format */
import React from 'react';
export interface MicroserviceConfig {
path: string;
Component: React.ComponentType;
fetchHooks?: Array<(courseId: string) => void>;
buildNavigation: (courseId: string, isTeacher: boolean) => any[];
}
interface MicroserviceRoutesProps {
microservices: MicroserviceConfig[];
}
/**
* Component responsible for managing and rendering microservice routes within the LMS.
*
* @version 2.1.0
* @breaking-changes
* - Navigation structure now requires course code and instance properties
* - Updated configuration interface for better TypeScript support
* - Changed route structure to support course instances
* - Added support for course code level navigation
* - Improved handling of microservice-specific navigation items
*
* @component
* @param {MicroserviceRoutesProps} props - Component properties
* @param {MicroserviceConfig[]} props.microservices - Array of microservice configurations
*
* @example
* ```tsx
* const microservices = [{
* path: 'assignments',
* Component: AssignmentsTool,
* fetchHooks: [(courseId) => fetchAssignmentData(courseId)],
* buildNavigation: (courseId, isTeacher) => ([{
* kind: 'page',
* segment: 'assignments',
* title: 'Assignments',
* description: 'Course assignments',
* forRoles: ['teacher', 'student']
* }])
* }];
* ```
*/
declare const MicroserviceRoutes: React.FC<MicroserviceRoutesProps>;
export default MicroserviceRoutes;