angrybeanie-front-end/pages/index.js

87 lines
3.2 KiB
JavaScript
Raw Normal View History

2020-12-06 21:49:37 +11:00
import Layout from "../components/main"
import FeatureImage from "../components/featureimage"
import PublishedInfo from '../components/publishedinfo.js'
2021-02-04 14:27:14 +11:00
import getConfig from 'next/config'
import Head from 'next/head'
import config from '../data/internal/config'
import { generatePodcastFeeds, generateRssFeed } from "../data/internal/feed-generator"
import { generateSitemap } from "../data/internal/sitemap-generator"
import { getLatestContent, getLatestPodcastEpisode } from "../data/external/cms"
import { getLatestGalleryImage } from "../data/external/cms"
2020-12-06 21:49:37 +11:00
export async function getStaticProps(context) {
generateRssFeed()
generateRssFeed('tech-and-disability')
generatePodcastFeeds()
generateSitemap()
const { serverRuntimeConfig } = getConfig()
const qs = require('qs')
const query = qs.stringify({
pagination: {
limit: 1
},
populate: {
FeatureImage: '*'
},
sort: ['publishedAt:desc'],
}, {
encodeValuesOnly: true,
})
const res = await fetch(serverRuntimeConfig.base_path +`articles?${query}`, {
headers: new Headers({
'Authorization': serverRuntimeConfig.strapi_token,
'Content-Type': 'application/x-www-form-urlencoded'
})
})
2020-12-06 21:49:37 +11:00
const artdata = await res.json()
const article = artdata.data[0].attributes
2021-02-04 14:27:14 +11:00
const pagedata = {'title': 'Angry Beanie'}
const combined = getLatestContent()
2020-12-06 21:49:37 +11:00
return {
props: { article, pagedata, config: serverRuntimeConfig, siteConfig: config},
revalidate: 60 // will be passed to the page component as props
2020-12-06 21:49:37 +11:00
}
}
2021-02-04 14:27:14 +11:00
function HomePage (props) {
var featureImage
if (props.article.FeatureImage.data) {
if (props.article.FeatureImage.data.attributes.formats.large) {
featureImage = props.article.FeatureImage.data.attributes.formats.large
featureImage.name = props.article.FeatureImage.data.attributes.alternativeText
}
}
var article_desc = props.article.Abstract.replace(new RegExp('<[^>]*>', 'g'), '')
return <Layout pagedata={props.pagedata}>
<Head>
<meta name="twitter:card" content={ article_desc } key="twcard" />
<meta name="twitter:creator" content="angrybeanie" key="twhandle" />
<meta name="og:url" content={config.siteURL + "/news/" + props.article.Slug}></meta>
<meta name="og:type" content="article"></meta>
<meta name="og:title" content={ props.article.Title } key="title"></meta>
<meta name="og:description" content={ article_desc } key="description"></meta>
{ props.article.FeatureImage.data != null &&
<meta name="og:image" content={props.config.media_path + featureImage.url}></meta>
}
</Head>
<div className="main_content col-md-9 col-sm-12">
{ props.article.FeatureImage.data != null &&
<FeatureImage imagedata = {featureImage} basepath = {props.config.media_path} ></FeatureImage>
}
<h1 className="page_title col-sm-12">{ props.article.Title }</h1>
<PublishedInfo publishData={props.article}></PublishedInfo>
<div className="article_body" dangerouslySetInnerHTML={{ __html: props.article.FullBody }}></div>
2021-09-05 16:12:45 +10:00
</div>
</Layout>
2020-12-06 21:49:37 +11:00
}
export default HomePage