* Temporarily uninstalling husky cause github desktop has issues with it * Cleaned up some code. Removed unnecessary state value on injected popup * Should've fixed popup alignment issue. Still need to integrate course schedule with calendar. Still debugging. * Updated CalendarGridStories * Fix: change to ExampleCourse from exampleCourse * setCourse and calendar header need work * Update as part of merge * Fix: fixed build errors * Fix: Added Todo * Chore: Cleaned up useFlattenedCourseSchedule hook * fix: List now keeps track of state when existing items are switched, while adding new items to the end * Added back husky * Update src/views/components/calendar/Calendar/Calendar.tsx Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: added type-safety, destructuring, etc. ready for re-review * refactor: got rid of ts-ignore in openNewTabFromContentScript * Update src/views/components/calendar/CalendarHeader/CalenderHeader.tsx Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using path aliasing Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using path aliasing Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using satisfies instead of as Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * refactor: using satisfies instead of as Co-authored-by: doprz <52579214+doprz@users.noreply.github.com> * style: reformatted spacing * style: eslint import order * refactor: added new constructor for UserSchedule to avoid passing down null values to child props * fix: fixed bug with course cell times starting and after 12 PM. commented in CourseMeeting class * Update src/views/hooks/useFlattenedCourseSchedule.ts * fix: fixed build errors by removing old apis * refactor: added type-safety and destructuring --------- Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import type { Course } from '@shared/types/Course';
|
|
import type { UserSchedule } from '@shared/types/UserSchedule';
|
|
import Popup from '@views/components/common/Popup/Popup';
|
|
import React from 'react';
|
|
|
|
import Description from './Description';
|
|
import GradeDistribution from './GradeDistribution';
|
|
import HeadingAndActions from './HeadingAndActions';
|
|
|
|
interface CourseCatalogInjectedPopupProps {
|
|
course: Course;
|
|
activeSchedule?: UserSchedule;
|
|
onClose: () => void;
|
|
}
|
|
|
|
/**
|
|
* CourseCatalogInjectedPopup component displays a popup with course details.
|
|
*
|
|
* @component
|
|
* @param {CourseCatalogInjectedPopupProps} props - The component props.
|
|
* @param {Course} props.course - The course object containing course details.
|
|
* @param {Schedule} props.activeSchedule - The active schedule object.
|
|
* @param {Function} props.onClose - The function to close the popup.
|
|
* @returns {JSX.Element} The CourseCatalogInjectedPopup component.
|
|
*/
|
|
export default function CourseCatalogInjectedPopup({
|
|
course,
|
|
activeSchedule,
|
|
onClose,
|
|
}: CourseCatalogInjectedPopupProps) {
|
|
return (
|
|
<Popup overlay className='max-w-[780px] px-6' onClose={onClose}>
|
|
<div className='flex flex-col'>
|
|
<HeadingAndActions course={course} onClose={onClose} activeSchedule={activeSchedule} />
|
|
<Description course={course} /* lines={course.description} Looks like this was replaced. Description now set internally*/ />
|
|
<GradeDistribution course={course} />
|
|
</div>
|
|
</Popup>
|
|
);
|
|
}
|