1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-08-11 03:34:00 +02:00

Fix sorting order of roadmaps

This commit is contained in:
Kamran Ahmed
2024-09-12 13:32:33 +01:00
parent ae58fa2a2a
commit 298b137a7d
2 changed files with 51 additions and 16 deletions

View File

@@ -81,6 +81,18 @@ export function ProjectsPage(props: ProjectsPageProps) {
(group) => group.id === activeGroup,
);
const requiredSortOrder = [
'Frontend',
'Backend',
'DevOps',
'Full-stack',
'JavaScript',
'Go',
'Python',
'Node.js',
'Java',
];
return (
<div className="border-t bg-gray-100">
<button
@@ -122,13 +134,33 @@ export function ProjectsPage(props: ProjectsPageProps) {
selected={activeGroup === ''}
/>
{roadmapsProjects.map((group) => (
{roadmapsProjects
.sort((a, b) => {
const aIndex = requiredSortOrder.indexOf(a.title);
const bIndex = requiredSortOrder.indexOf(b.title);
if (aIndex === -1 && bIndex === -1) {
return a.title.localeCompare(b.title);
}
if (aIndex === -1) {
return 1;
}
if (bIndex === -1) {
return -1;
}
return aIndex - bIndex;
})
.map((group) => (
<CategoryFilterButton
key={group.id}
onClick={() => {
setActiveGroup(group.id);
setIsFilterOpen(false);
document?.getElementById('filter-button')?.scrollIntoView();
document
?.getElementById('filter-button')
?.scrollIntoView();
setVisibleProjects(group.projects);
setUrlParams({ g: group.id });
}}

View File

@@ -11,7 +11,10 @@ const allRoadmapIds = Object.keys(roadmapProjects);
const allRoadmaps = await getRoadmapsByIds(allRoadmapIds);
const enrichedRoadmaps = allRoadmaps.map((roadmap) => {
const projects = roadmapProjects[roadmap.id];
const projects = (roadmapProjects[roadmap.id] || []).sort((a, b) => {
return a.frontmatter.sort - b.frontmatter.sort;
});
return {
id: roadmap.id,
title: roadmap.frontmatter.briefTitle,