Skip to content

Commit e588ad0

Browse files
committed
Fix incorrect commit
1 parent ef9771b commit e588ad0

File tree

12 files changed

+19
-72
lines changed

12 files changed

+19
-72
lines changed

course-matrix/backend/jest.config.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@ import type { Config } from "jest";
22

33
const config: Config = {
44
preset: "ts-jest",
5-
moduleNameMapper: {
6-
"\\.(css|scss)$": "identity-obj-proxy",
7-
"^.+\\.svg": "<rootDir>/tests/mocks/svgMock.tsx",
8-
},
5+
moduleNameMapper: { "\\.(css|scss)$": "identity-obj-proxy" },
96
// to obtain access to the matchers.
10-
setupFilesAfterEnv: ["<rootDir>/tests/setupTests.ts"],
117
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
128
modulePaths: ["<rootDir>"],
139
testEnvironment: "jsdom",

course-matrix/backend/src/utils/convert-breadth-requirement.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

course-matrix/backend/src/utils/convert-year-level.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

course-matrix/backend/tests/mocks/svgMock.tsx

Lines changed: 0 additions & 2 deletions
This file was deleted.

course-matrix/backend/tests/setupTests.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

course-matrix/backend/tsconfig.app.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@
2727
"@/*": ["./src/*"]
2828
}
2929
},
30-
"include": ["src", "tests/setupTests.ts"]
30+
"include": ["src"]
3131
}

course-matrix/frontend/jest.config.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@ import type { Config } from "jest";
22

33
const config: Config = {
44
preset: "ts-jest",
5-
moduleNameMapper: {
6-
"\\.(css|scss)$": "identity-obj-proxy",
7-
"^.+\\.svg": "<rootDir>/tests/mocks/svgMock.tsx",
8-
},
5+
moduleNameMapper: { "\\.(css|scss)$": "identity-obj-proxy" },
96
// to obtain access to the matchers.
10-
setupFilesAfterEnv: ["<rootDir>/tests/setupTests.ts"],
117
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
128
modulePaths: ["<rootDir>"],
139
testEnvironment: "jsdom",

course-matrix/frontend/src/pages/TimetableBuilder/TimetableBuilder.tsx

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,9 @@ import SearchFilters from "./SearchFilters";
4141
import Calendar from "./Calendar";
4242
import { Timetable } from "@/utils/type-utils";
4343
import { useSearchParams } from "react-router-dom";
44-
4544
type FormContextType = UseFormReturn<z.infer<typeof TimetableFormSchema>>;
4645
export const FormContext = createContext<FormContextType | null>(null);
4746
const SEARCH_LIMIT = 1000;
48-
4947
/**
5048
* TimetableBuilder Component
5149
*
@@ -81,35 +79,31 @@ const SEARCH_LIMIT = 1000;
8179
*
8280
* @returns {JSX.Element} The rendered timetable builder.
8381
*/
84-
8582
const TimetableBuilder = () => {
8683
const form = useForm<z.infer<typeof TimetableFormSchema>>({
8784
resolver: zodResolver(TimetableFormSchema),
8885
defaultValues: baseTimetableForm,
8986
});
90-
9187
const filterForm = useForm<z.infer<typeof FilterFormSchema>>({
9288
resolver: zodResolver(FilterFormSchema),
9389
});
94-
9590
const [queryParams, setQueryParams] = useSearchParams();
9691
const isEditingTimetable = queryParams.has("edit");
9792
const editingTimetableId = queryParams.get("edit");
98-
9993
const selectedCourses = form.watch("courses") || [];
10094
const enabledRestrictions = form.watch("restrictions") || [];
10195
const searchQuery = form.watch("search");
10296
const debouncedSearchQuery = useDebounceValue(searchQuery, 250);
103-
10497
const [isCustomSettingsOpen, setIsCustomSettingsOpen] = useState(false);
10598
const [filters, setFilters] = useState<FilterForm | null>(null);
10699
const [showFilters, setShowFilters] = useState(false);
107-
const [timetableId, setTimetableId] = useState(-1);
100+
const [timetableId, setTimetableId] = useState(
101+
editingTimetableId ? parseInt(editingTimetableId) : 0
102+
);
108103

109104
const noSearchAndFilter = () => {
110105
return !searchQuery && !filters;
111106
};
112-
113107
// limit search number if no search query or filters for performance purposes.
114108
// Otherwise, limit is 10k, which effectively gets all results.
115109
const { data, isLoading, error, refetch } = useGetCoursesQuery({
@@ -118,38 +112,32 @@ const TimetableBuilder = () => {
118112
semester: form.getValues("semester"),
119113
...filters,
120114
});
121-
122115
const { data: eventsData, isLoading: eventsLoading } = useGetEventsQuery(
123-
timetableId,
116+
timetableId
124117
) as {
125118
data: { courseEvents: unknown[]; userEvents: unknown[] };
126119
isLoading: boolean;
127120
};
128121
const courseEvents = eventsData?.courseEvents || [];
129122
const userEvents = eventsData?.userEvents || [];
130-
131123
const { data: timetablesData } = useGetTimetablesQuery() as {
132124
data: Timetable[];
133125
};
134126
const timetables = timetablesData || [];
135-
136127
useEffect(() => {
137128
if (searchQuery) {
138129
refetch();
139130
}
140131
}, [debouncedSearchQuery]);
141-
142132
const createTimetable = (values: z.infer<typeof TimetableFormSchema>) => {
143133
console.log(values);
144134
// TODO Send request to /api/timetable/create
145135
};
146-
147136
const handleReset = () => {
148137
form.reset();
149138
filterForm.reset();
150139
setFilters(null);
151140
};
152-
153141
const handleRemoveCourse = (course: {
154142
id: number;
155143
code: string;
@@ -159,24 +147,20 @@ const TimetableBuilder = () => {
159147
const newList = currentList.filter((item) => item.id !== course.id);
160148
form.setValue("courses", newList);
161149
};
162-
163150
const handleAddRestriction = (values: z.infer<typeof RestrictionSchema>) => {
164151
const currentList = form.getValues("restrictions");
165152
const newList = [...currentList, values];
166153
form.setValue("restrictions", newList);
167154
};
168-
169155
const handleRemoveRestriction = (index: number) => {
170156
const currentList = form.getValues("restrictions");
171157
const newList = currentList.filter((_, i) => i !== index);
172158
form.setValue("restrictions", newList);
173159
};
174-
175160
const applyFilters = (values: z.infer<typeof FilterFormSchema>) => {
176161
setFilters(values);
177162
console.log("Apply filters", values);
178163
};
179-
180164
return (
181165
<>
182166
<div className="w-full">
@@ -223,7 +207,6 @@ const TimetableBuilder = () => {
223207
</div>
224208
<hr />
225209
</div>
226-
227210
<div className="m-8 flex gap-12">
228211
<div className="w-2/5">
229212
<Form {...form}>
@@ -254,7 +237,7 @@ const TimetableBuilder = () => {
254237
<SelectItem key={value} value={value}>
255238
{value}
256239
</SelectItem>
257-
),
240+
)
258241
)}
259242
</SelectContent>
260243
</Select>
@@ -263,7 +246,6 @@ const TimetableBuilder = () => {
263246
</FormItem>
264247
)}
265248
/>
266-
267249
<FormField
268250
control={form.control}
269251
name="search"
@@ -310,7 +292,6 @@ const TimetableBuilder = () => {
310292
))}
311293
</div>
312294
</div>
313-
314295
<div className="flex gap-12 items-end">
315296
<div className="flex flex-col gap-2">
316297
<h2 className="text-lg">Custom Settings</h2>
@@ -328,7 +309,6 @@ const TimetableBuilder = () => {
328309
+ Add new
329310
</Button>
330311
</div>
331-
332312
<div className="flex flex-col">
333313
<p className="text-sm pb-2">
334314
Enabled Restrictions: {enabledRestrictions.length}
@@ -357,7 +337,6 @@ const TimetableBuilder = () => {
357337
{restric.numDays} days off
358338
</p>
359339
)}
360-
361340
<X
362341
size={16}
363342
className="hover:text-red-500 cursor-pointer"
@@ -367,7 +346,6 @@ const TimetableBuilder = () => {
367346
))}
368347
</div>
369348
</div>
370-
371349
<Button type="submit">Generate</Button>
372350
</form>
373351
</FormContext.Provider>
@@ -382,7 +360,6 @@ const TimetableBuilder = () => {
382360
closeHandler={() => setIsCustomSettingsOpen(false)}
383361
/>
384362
)}
385-
386363
{showFilters && (
387364
<SearchFilters
388365
submitHandler={applyFilters}
@@ -400,5 +377,4 @@ const TimetableBuilder = () => {
400377
</>
401378
);
402379
};
403-
404380
export default TimetableBuilder;

course-matrix/frontend/tests/mocks/svgMock.tsx

Lines changed: 0 additions & 2 deletions
This file was deleted.

course-matrix/frontend/tests/setupTests.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)