lms/resources/js/pages/intro/partials/contents/contents.tsx
2025-12-15 12:26:23 +01:00

41 lines
1.3 KiB
TypeScript

import Categories from './categories';
import Courses from './courses';
import Instructors from './instructors';
interface Props {
contents: Pagination<Course | CourseCategory | Instructor>;
section_slug: string;
selectedIds?: number[];
onSelectChange?: (id: number) => void;
}
const Contents = ({ contents, section_slug, selectedIds = [], onSelectChange }: Props) => {
// Render different form elements based on field type
const renderField = () => {
switch (section_slug) {
case 'hero':
case 'top_course':
case 'top_courses':
case 'new_courses':
return <Courses courses={contents as Pagination<Course>} selectedIds={selectedIds} onCourseSelect={onSelectChange} />;
case 'top_categories':
case 'category_courses':
return <Categories categories={contents as Pagination<CourseCategory>} selectedIds={selectedIds} onCourseSelect={onSelectChange} />;
case 'top_instructors':
return <Instructors instructors={contents as Pagination<Instructor>} selectedIds={selectedIds} onCourseSelect={onSelectChange} />;
case 'blogs':
return <h1>Blogs</h1>;
default:
return null;
}
};
return <div className="rounded-md border">{renderField()}</div>;
};
export default Contents;