diff --git a/src/components/releases.js b/src/components/releases.js index 36f6c33776..f818635d4b 100644 --- a/src/components/releases.js +++ b/src/components/releases.js @@ -1,49 +1,51 @@ -import React from "react" -import { StaticQuery, graphql } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" +import React from 'react'; +import { StaticQuery, graphql } from 'gatsby'; +import { MDXRenderer } from 'gatsby-plugin-mdx'; +import { MDXProvider } from '@mdx-js/react'; +import { subYears, parseISO, isAfter } from 'date-fns'; -import { headline1, headline2, headline3 } from "./releaseHeadlines" +import { headline1, headline2, headline3 } from './releaseHeadlines'; const shortcodes = { h1: headline1, h2: headline2, h3: headline3, -} +}; -const Releases = ({ data }) => ( - <> - {data.allTerminusReleasesJson.edges.map((release, i) => { - return ( +const Releases = ({ data }) => { + const oneYearAgo = subYears(new Date(), 1); + + // Filter releases that are newer than one year + const filteredReleases = data.allTerminusReleasesJson.edges.filter((release) => + isAfter(parseISO(release.node.fields.markdownBody.childMdx.body.published_at), oneYearAgo) + ); + + return ( + <> + {filteredReleases.map((release, i) => (

{release.node.tag_name}

- - {release.node.fields.markdownBody.childMdx.body} - + {release.node.fields.markdownBody.childMdx.body}
- ) - })} - -) + ))} + + ); +}; -export default props => ( +export default (props) => ( ( } } `} - render={data => } + render={(data) => } /> -) +); diff --git a/src/components/terminusVersion.js b/src/components/terminusVersion.js index 53229fbe7e..52910b2408 100644 --- a/src/components/terminusVersion.js +++ b/src/components/terminusVersion.js @@ -1,22 +1,26 @@ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" +import React from 'react'; +import { useStaticQuery, graphql } from 'gatsby'; function TerminusVersion({ text }) { - const { terminusReleasesJson } = useStaticQuery( - graphql` - query { - terminusReleasesJson { - tag_name + const { allTerminusReleasesJson } = useStaticQuery(graphql` + query { + allTerminusReleasesJson(sort: { fields: [published_at], order: DESC }) { + edges { + node { + tag_name + } } } - ` - ) + } + `); + + const latestRelease = allTerminusReleasesJson.edges[0].node.tag_name; return (

- {text} {terminusReleasesJson.tag_name} + {text} {latestRelease}

- ) + ); } -export default TerminusVersion +export default TerminusVersion;