Add isNew flag logic
This commit is contained in:
@@ -16,8 +16,11 @@ import {
|
|||||||
export const createRadar = async (tree) => {
|
export const createRadar = async (tree) => {
|
||||||
const fileNames = (await getAllMarkdownFiles(radarPath())).reverse();
|
const fileNames = (await getAllMarkdownFiles(radarPath())).reverse();
|
||||||
const revisions = await createRevisionsFromFiles(fileNames);
|
const revisions = await createRevisionsFromFiles(fileNames);
|
||||||
|
const allVersions = getAllVersions(revisions);
|
||||||
const quadrants = createQuadrants(revisions);
|
const quadrants = createQuadrants(revisions);
|
||||||
return quadrants;
|
const quadrantsWithIsNewFlag = flagWithIsNew(quadrants, allVersions);
|
||||||
|
|
||||||
|
return quadrantsWithIsNewFlag;
|
||||||
};
|
};
|
||||||
|
|
||||||
const createRevisionsFromFiles = (fileNames) => (
|
const createRevisionsFromFiles = (fileNames) => (
|
||||||
@@ -53,6 +56,15 @@ const itemInfoFromFilename = (fileName) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getAllVersions = (revisions) => (
|
||||||
|
revisions.reduce((allVersions, { version }) => {
|
||||||
|
if(!allVersions.includes(version)) {
|
||||||
|
return [...allVersions, version];
|
||||||
|
}
|
||||||
|
return allVersions;
|
||||||
|
}, []).sort()
|
||||||
|
)
|
||||||
|
|
||||||
const createQuadrants = (revisions) => (
|
const createQuadrants = (revisions) => (
|
||||||
revisions.reduce((quadrants, revision) => {
|
revisions.reduce((quadrants, revision) => {
|
||||||
return {
|
return {
|
||||||
@@ -123,3 +135,20 @@ const outputQuadrantPage = (quadrantName, quadrant) => (
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const flagWithIsNew = (radar, allVersions) => (
|
||||||
|
Object.entries(radar).reduce((newRadar, [quadrantName, quadrant]) => ({
|
||||||
|
...newRadar,
|
||||||
|
[quadrantName]: Object.entries(quadrant).reduce((newItem, [itemName, item]) => ({
|
||||||
|
...newItem,
|
||||||
|
[itemName]: {
|
||||||
|
...item,
|
||||||
|
isNew: isNewItem(item, allVersions),
|
||||||
|
},
|
||||||
|
}), {}),
|
||||||
|
}), {})
|
||||||
|
);
|
||||||
|
|
||||||
|
const isNewItem = (item, allVersions) => {
|
||||||
|
return item.revisions[0].version === allVersions[allVersions.length-1]
|
||||||
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ block content
|
|||||||
= ' '
|
= ' '
|
||||||
small #{item.attributes.ring}
|
small #{item.attributes.ring}
|
||||||
|
|
||||||
|
h2 New: #{item.isNew ? 'YES' : 'NO'}
|
||||||
|
|
||||||
hr
|
hr
|
||||||
section
|
section
|
||||||
!= item.revisions[0].body
|
!= item.revisions[0].body
|
||||||
|
|||||||
Reference in New Issue
Block a user