31 lines
933 B
TypeScript
31 lines
933 B
TypeScript
import { getTime, getYear } from "date-fns";
|
||
import { IProject } from "../types/IProject";
|
||
import { SortedProject } from "../types/SortedProject";
|
||
|
||
function getSortedProjects(projects: IProject[]) {
|
||
const sorted = [...projects].sort(
|
||
(da, db) => getTime(db.releaseDate) - getTime(da.releaseDate)
|
||
);
|
||
|
||
const sortedProject: SortedProject = new Map();
|
||
|
||
for (let i = 0; i < sorted.length; i++) {
|
||
const project = sorted[i];
|
||
const projectYear = getYear(project.releaseDate);
|
||
const key = project.stage !== 6 ? "В работе" : projectYear;
|
||
|
||
if (sortedProject.has(key)) {
|
||
const prevProjects = sortedProject.get(key) as IProject[];
|
||
const updatedProjects = [...prevProjects, project];
|
||
sortedProject.set(key, updatedProjects);
|
||
} else {
|
||
const createdProjects = [project];
|
||
sortedProject.set(key, createdProjects);
|
||
}
|
||
}
|
||
|
||
return sortedProject;
|
||
}
|
||
|
||
export { getSortedProjects };
|