chore: lint and format the repo

This commit is contained in:
doprz
2024-02-29 21:24:09 -06:00
parent 62f0851406
commit d62b8d1af1
8 changed files with 86 additions and 71 deletions

View File

@@ -29,11 +29,7 @@ export default function PopupMain() {
} }
const draggableElements = activeSchedule?.courses.map((course, i) => ( const draggableElements = activeSchedule?.courses.map((course, i) => (
<PopupCourseBlock <PopupCourseBlock key={course.uniqueId} course={course} colors={tailwindColorways[i]} />
key={course.uniqueId}
course={course}
colors={tailwindColorways[i]}
/>
)); ));
const handleOpenOptions = async () => { const handleOpenOptions = async () => {

View File

@@ -9,8 +9,6 @@ import { useFlattenedCourseSchedule } from '@views/hooks/useFlattenedCourseSched
import React from 'react'; import React from 'react';
import { ExampleCourse } from 'src/stories/components/PopupCourseBlock.stories'; import { ExampleCourse } from 'src/stories/components/PopupCourseBlock.stories';
export const flags = ['WR', 'QR', 'GC', 'CD', 'E', 'II']; export const flags = ['WR', 'QR', 'GC', 'CD', 'E', 'II'];
interface Props { interface Props {
@@ -27,7 +25,11 @@ export function Calendar(): JSX.Element {
return ( return (
<div className='flex flex-col'> <div className='flex flex-col'>
<CalendarHeader totalHours={activeSchedule.hours} scheduleName={activeSchedule.name} totalCourses={activeSchedule?.courses.length}/> <CalendarHeader
totalHours={activeSchedule.hours}
scheduleName={activeSchedule.name}
totalCourses={activeSchedule?.courses.length}
/>
<div className='h-screen w-full flex flex-col md:flex-row'> <div className='h-screen w-full flex flex-col md:flex-row'>
<div className='min-h-[30%] flex flex-col items-start gap-2.5 p-5 pl-7'> <div className='min-h-[30%] flex flex-col items-start gap-2.5 p-5 pl-7'>
<div className='min-h-[30%]'> <div className='min-h-[30%]'>
@@ -46,7 +48,13 @@ export function Calendar(): JSX.Element {
</div> </div>
{/* TODO: Doesn't work when exampleCourse is replaced with an actual course through setCourse. {/* TODO: Doesn't work when exampleCourse is replaced with an actual course through setCourse.
Check CalendarGrid.tsx and AccountForCourseConflicts for an example */} Check CalendarGrid.tsx and AccountForCourseConflicts for an example */}
{course ? <CourseCatalogInjectedPopup course = {ExampleCourse} activeSchedule = {activeSchedule} onClose={() => setCourse(null)}/> : null} {course ? (
<CourseCatalogInjectedPopup
course={ExampleCourse}
activeSchedule={activeSchedule}
onClose={() => setCourse(null)}
/>
) : null}
</div> </div>
); );
} }

View File

@@ -56,7 +56,11 @@ const CalendarCourseCell: React.FC<CalendarCourseCellProps> = ({
return ( return (
<div <div
className={clsx('h-full w-full flex justify-center rounded p-2 overflow-x-hidden cursor-default hover:cursor-pointer', fontColor, className)} className={clsx(
'h-full w-full flex justify-center rounded p-2 overflow-x-hidden cursor-default hover:cursor-pointer',
fontColor,
className
)}
style={{ style={{
backgroundColor: colors.primaryColor, backgroundColor: colors.primaryColor,
}} }}

View File

@@ -12,7 +12,6 @@ import { DAY_MAP } from 'src/shared/types/CourseMeeting';
import styles from './CalendarGrid.module.scss'; import styles from './CalendarGrid.module.scss';
interface Props { interface Props {
courseCells?: CalendarGridCourse[]; courseCells?: CalendarGridCourse[];
saturdayClass?: boolean; saturdayClass?: boolean;
@@ -89,7 +88,6 @@ function CalendarGrid({ courseCells, saturdayClass, setCourse }: React.PropsWith
grid.push(row); grid.push(row);
} }
return ( return (
<div className={styles.calendarGrid}> <div className={styles.calendarGrid}>
{/* Displaying day labels */} {/* Displaying day labels */}

View File

@@ -1,19 +1,18 @@
import createSchedule from '@pages/background/lib/createSchedule'; import createSchedule from '@pages/background/lib/createSchedule';
import switchSchedule from '@pages/background/lib/switchSchedule'; import switchSchedule from '@pages/background/lib/switchSchedule';
import type { UserSchedule } from '@shared/types/UserSchedule'; // import type { UserSchedule } from '@shared/types/UserSchedule';
import List from '@views/components/common/List/List';
import ScheduleListItem from '@views/components/common/ScheduleListItem/ScheduleListItem';
import Text from '@views/components/common/Text/Text';
import useSchedules from '@views/hooks/useSchedules'; import useSchedules from '@views/hooks/useSchedules';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import AddSchedule from '~icons/material-symbols/add'; import AddSchedule from '~icons/material-symbols/add';
import List from '../../common/List/List';
import ScheduleListItem from '../../common/ScheduleListItem/ScheduleListItem';
import Text from '../../common/Text/Text';
export type Props = { export type Props = {
style?: React.CSSProperties; style?: React.CSSProperties;
dummySchedules?: UserSchedule[]; // dummySchedules?: UserSchedule[];
dummyActiveIndex?: number; // dummyActiveIndex?: number;
}; };
/** /**

View File

@@ -86,7 +86,7 @@ const List: React.FC<ListProps> = ({ draggableElements, itemHeight, listHeight,
const [items, setItems] = useState(() => initial(0, draggableElements)); const [items, setItems] = useState(() => initial(0, draggableElements));
useEffect(() => { useEffect(() => {
setItems((prevItems) => { setItems(prevItems => {
const prevItemIds = prevItems.map(item => item.id); const prevItemIds = prevItems.map(item => item.id);
const newElements = draggableElements.filter((_, index) => !prevItemIds.includes(`id:${index}`)); const newElements = draggableElements.filter((_, index) => !prevItemIds.includes(`id:${index}`));
const newItems = initial(prevItems.length, newElements); const newItems = initial(prevItems.length, newElements);

View File

@@ -5,8 +5,6 @@ import type { CalendarCourseCellProps } from '@views/components/calendar/Calenda
import useSchedules from './useSchedules'; import useSchedules from './useSchedules';
const dayToNumber: { [day: string]: number } = { const dayToNumber: { [day: string]: number } = {
Monday: 0, Monday: 0,
Tuesday: 1, Tuesday: 1,
@@ -66,14 +64,14 @@ export function useFlattenedCourseSchedule(): FlattenedCourseSchedule {
if (activeSchedule.courses.length === 0) { if (activeSchedule.courses.length === 0) {
return { return {
courseCells: [] as CalendarGridCourse[], courseCells: [] as CalendarGridCourse[],
activeSchedule activeSchedule,
} satisfies FlattenedCourseSchedule; } satisfies FlattenedCourseSchedule;
} }
const { courses, name, hours } = activeSchedule; const { courses, name, hours } = activeSchedule;
const processedCourses = courses.flatMap((course: Course) => { const processedCourses = courses
.flatMap((course: Course) => {
const { status, courseDeptAndInstr, meetings } = extractCourseInfo(course); const { status, courseDeptAndInstr, meetings } = extractCourseInfo(course);
if (meetings.length === 0) { if (meetings.length === 0) {
@@ -83,7 +81,8 @@ export function useFlattenedCourseSchedule(): FlattenedCourseSchedule {
return meetings.flatMap((meeting: CourseMeeting) => return meetings.flatMap((meeting: CourseMeeting) =>
processInPersonMeetings(meeting, { courseDeptAndInstr, status, course }) processInPersonMeetings(meeting, { courseDeptAndInstr, status, course })
); );
}).sort(sortCourses); })
.sort(sortCourses);
return { return {
courseCells: processedCourses as CalendarGridCourse[], courseCells: processedCourses as CalendarGridCourse[],
@@ -106,8 +105,17 @@ function extractCourseInfo(course: Course) {
/** /**
* Function to process each in-person class into its distinct meeting objects for calendar grid * Function to process each in-person class into its distinct meeting objects for calendar grid
*/ */
function processAsyncCourses({ courseDeptAndInstr, status, course }: { courseDeptAndInstr: string, status: StatusType, course: Course }) { function processAsyncCourses({
return [{ courseDeptAndInstr,
status,
course,
}: {
courseDeptAndInstr: string;
status: StatusType;
course: Course;
}) {
return [
{
calendarGridPoint: { calendarGridPoint: {
dayIndex: 0, dayIndex: 0,
startIndex: 0, startIndex: 0,
@@ -122,13 +130,17 @@ function processAsyncCourses({ courseDeptAndInstr, status, course }: { courseDep
}, },
}, },
course, course,
}] satisfies CalendarGridCourse[]; },
] satisfies CalendarGridCourse[];
} }
/** /**
* Function to process each in-person class into its distinct meeting objects for calendar grid * Function to process each in-person class into its distinct meeting objects for calendar grid
*/ */
function processInPersonMeetings( { days, startTime, endTime, location }: CourseMeeting, { courseDeptAndInstr, status, course }) { function processInPersonMeetings(
{ days, startTime, endTime, location }: CourseMeeting,
{ courseDeptAndInstr, status, course }
) {
const time = getTimeString({ separator: '-', capitalize: true }, startTime, endTime); const time = getTimeString({ separator: '-', capitalize: true }, startTime, endTime);
const timeAndLocation = `${time} - ${location ? location.building : 'WB'}`; const timeAndLocation = `${time} - ${location ? location.building : 'WB'}`;
return days.map(day => ({ return days.map(day => ({
@@ -150,7 +162,6 @@ function processInPersonMeetings( { days, startTime, endTime, location }: Course
})) satisfies CalendarGridCourse[]; })) satisfies CalendarGridCourse[];
} }
/** /**
* Utility function to sort courses for the calendar grid * Utility function to sort courses for the calendar grid
*/ */
@@ -167,7 +178,6 @@ function sortCourses(a, b) {
return endIndexA - endIndexB; return endIndexA - endIndexB;
} }
/** /**
* Utility function also present in CourseMeeting object. Wasn't being found at runtime, so I copied it over. * Utility function also present in CourseMeeting object. Wasn't being found at runtime, so I copied it over.
*/ */