From 50e88fa015e0290fbe0dab8a19f8fcdbc4dd02b0 Mon Sep 17 00:00:00 2001
From: adityamkk <73001560+adityamkk@users.noreply.github.com>
Date: Tue, 29 Oct 2024 16:07:26 -0500
Subject: [PATCH] fix(ui): multiple instructors are formatted properly,
displays last name only, and are capitalized in all course blocks (#342)
(#403)
* fix(ui): updated multiple instructor name formatting in course blocks
* fix(ui): display instructor last names only in all course blocks
* refactor: use instructor toString when getting instructor full name
* refactor: toString in useFlattenedCourseSchedule without template literal
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
* refactor: delete type hint and unnecessary comments
* fix(ui): instructor names semicolon delimiter in calendar course block
* fix(ui): removed 'unknown' when there are no instructors
* fix(ui): change - to &ndash
* fix(ui): changed - to ndash in hook
---------
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
---
src/views/components/common/PopupCourseBlock.tsx | 5 +++--
.../CourseCatalogInjectedPopup/HeadingAndActions.tsx | 7 ++-----
src/views/hooks/useFlattenedCourseSchedule.ts | 8 +++++---
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/views/components/common/PopupCourseBlock.tsx b/src/views/components/common/PopupCourseBlock.tsx
index 6cd7f69e..2b21ea7f 100644
--- a/src/views/components/common/PopupCourseBlock.tsx
+++ b/src/views/components/common/PopupCourseBlock.tsx
@@ -78,8 +78,9 @@ export default function PopupCourseBlock({
- {formattedUniqueId} {course.department} {course.number} –{' '}
- {course.instructors.length === 0 ? 'Unknown' : course.instructors.map(v => v.lastName)}
+ {formattedUniqueId} {course.department} {course.number}
+ {course.instructors.length > 0 ? <> – > : ''}
+ {course.instructors.map(v => v.toString({ format: 'last', case: 'capitalize' })).join('; ')}
{enableCourseStatusChips && course.status !== Status.OPEN && (
{
- const { firstName = '', lastName = '' } = instructor;
- if (firstName === '') return capitalizeString(lastName);
- return `${capitalizeString(firstName)} ${capitalizeString(lastName)}`;
- };
+ const getInstructorFullName = (instructor: Instructor) =>
+ instructor.toString({ format: 'first_last', case: 'capitalize' });
const getBuildingUrl = (building: string) =>
`https://utdirect.utexas.edu/apps/campus/buildings/nlogon/maps/UTM/${building}`;
diff --git a/src/views/hooks/useFlattenedCourseSchedule.ts b/src/views/hooks/useFlattenedCourseSchedule.ts
index 58ee6d0e..50e0bd7a 100644
--- a/src/views/hooks/useFlattenedCourseSchedule.ts
+++ b/src/views/hooks/useFlattenedCourseSchedule.ts
@@ -95,9 +95,11 @@ function extractCourseInfo(course: Course) {
let courseDeptAndInstr = `${course.department} ${course.number}`;
- const mainInstructor = course.instructors[0];
- if (mainInstructor) {
- courseDeptAndInstr += ` – ${mainInstructor.toString({ format: 'first_last', case: 'capitalize' })}`;
+ if (course.instructors.length > 0) {
+ courseDeptAndInstr += ' \u2013 ';
+ courseDeptAndInstr += course.instructors
+ .map(instructor => instructor.toString({ format: 'last', case: 'capitalize' }))
+ .join('; ');
}
return { status, courseDeptAndInstr, meetings, course };