feat(dashboard): add last updated at course sort option (#823)
Co-authored-by: Cursor Agent <[email protected]> Co-authored-by: Rotimi Best <[email protected]>
This commit is contained in:
co-authored by
Cursor Agent
Rotimi Best
parent
753f9b3d7b
commit
9b9dccc07a
@@ -19,6 +19,7 @@ export const EXERCISE_TEMPLATE_TAGS = {
|
||||
/** Named sort keys for course lists (URL `sort`, localStorage, filter UI). */
|
||||
export const CourseSortBy = {
|
||||
DateCreated: 'date_created',
|
||||
LastUpdatedAt: 'last_updated_at',
|
||||
Published: 'published',
|
||||
Lessons: 'lessons'
|
||||
} as const;
|
||||
@@ -68,6 +69,7 @@ export function parseCourseSortOrder(value: string | null | undefined): CourseSo
|
||||
|
||||
export const COURSE_SORT_OPTIONS = [
|
||||
{ value: CourseSortBy.DateCreated, label: 'courses.course_filter.date_created' },
|
||||
{ value: CourseSortBy.LastUpdatedAt, label: 'courses.course_filter.last_updated_at' },
|
||||
{ value: CourseSortBy.Published, label: 'courses.course_filter.published' },
|
||||
{ value: CourseSortBy.Lessons, label: 'courses.course_filter.lessons' }
|
||||
] as const;
|
||||
|
||||
@@ -39,6 +39,13 @@
|
||||
return coursesFiltered.sort(
|
||||
(a, b) => new Date(a.createdAt ?? '').getTime() - new Date(b.createdAt ?? '').getTime()
|
||||
);
|
||||
} else if (sortKey === CourseSortBy.LastUpdatedAt) {
|
||||
return coursesFiltered.sort((a, b) => {
|
||||
const aUpdatedAt = new Date(a.updatedAt ?? a.createdAt ?? '').getTime();
|
||||
const bUpdatedAt = new Date(b.updatedAt ?? b.createdAt ?? '').getTime();
|
||||
|
||||
return bUpdatedAt - aUpdatedAt;
|
||||
});
|
||||
} else if (sortKey === CourseSortBy.Published) {
|
||||
return coursesFiltered.sort((a, b) => Number(b.isPublished) - Number(a.isPublished));
|
||||
} else if (sortKey === CourseSortBy.Lessons) {
|
||||
|
||||
Reference in New Issue
Block a user