2021-02-04 14:27:14 +11:00
|
|
|
import getConfig from 'next/config'
|
2020-12-06 21:49:37 +11:00
|
|
|
import "../../components/main.js"
|
|
|
|
|
import Layout from "../../components/main.js"
|
2021-02-04 14:27:14 +11:00
|
|
|
import FeatureImage from "../../components/featureimage.js"
|
|
|
|
|
import StorySideBar from '../../components/storysidebar.js'
|
2022-06-17 21:57:06 +10:00
|
|
|
import { getAllPosts, getSinglePost } from '../../data/external/cms'
|
2021-09-05 16:12:45 +10:00
|
|
|
import * as gtag from "../../lib/gtag"
|
|
|
|
|
import Image from 'next/image';
|
2022-06-12 15:12:28 +10:00
|
|
|
import Head from 'next/head'
|
2022-07-01 16:43:50 +10:00
|
|
|
import config from "../../data/internal/config"
|
2020-12-06 21:49:37 +11:00
|
|
|
|
2022-07-01 16:43:50 +10:00
|
|
|
const Article = ({article_obj, sections, pagedata, stories, serverRuntimeConfig, config}) => {
|
2022-06-12 15:12:28 +10:00
|
|
|
if (!article_obj) return null
|
2022-06-29 21:11:16 +10:00
|
|
|
|
|
|
|
|
var featureImage
|
|
|
|
|
|
|
|
|
|
if (article_obj.FeatureImage.data) {
|
|
|
|
|
if (article_obj.FeatureImage.data.attributes.formats.large) {
|
|
|
|
|
featureImage = article_obj.FeatureImage.data.attributes.formats.large
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-07-01 16:43:50 +10:00
|
|
|
console.log(article_obj)
|
2022-06-12 15:12:28 +10:00
|
|
|
return ( <Layout sections={sections} pagedata={pagedata}>
|
|
|
|
|
<Head>
|
2022-07-01 16:43:50 +10:00
|
|
|
<meta name="twitter:card" content={ article_obj.Abstract } key="twcard" />
|
2022-06-12 15:12:28 +10:00
|
|
|
<meta name="twitter:creator" content="angrybeanie" key="twhandle" />
|
2022-07-01 16:43:50 +10:00
|
|
|
<meta name="og:url" content={config.siteURL + "/news/" + article_obj.Slug}></meta>
|
|
|
|
|
<meta name="og:type" content="article"></meta>
|
|
|
|
|
<meta name="og:title" content={ article_obj.Title } key="title"></meta>
|
|
|
|
|
<meta name="og:description" content={ article_obj.Abstract } key="description"></meta>
|
|
|
|
|
{ article_obj.FeatureImage.data != null &&
|
|
|
|
|
<meta name="og:image" content={featureImage.url}></meta>
|
|
|
|
|
}
|
2022-06-12 15:12:28 +10:00
|
|
|
</Head>
|
|
|
|
|
<div className="main_content col-md-9 col-sm-12">
|
|
|
|
|
{ article_obj.FeatureImage.data != null &&
|
2022-06-29 21:11:16 +10:00
|
|
|
<FeatureImage imagedata = {featureImage} basepath = {serverRuntimeConfig.base_path} ></FeatureImage>
|
2022-06-12 15:12:28 +10:00
|
|
|
}
|
|
|
|
|
<h1>{ article_obj.Title }</h1>
|
|
|
|
|
<div className="article_body" dangerouslySetInnerHTML={{ __html: article_obj.Body }}></div>
|
|
|
|
|
</div>
|
|
|
|
|
<StorySideBar stories={stories} />
|
|
|
|
|
</Layout>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default Article
|
|
|
|
|
|
|
|
|
|
export async function getStaticPaths() {
|
|
|
|
|
const posts = await getAllPosts()
|
|
|
|
|
const paths = posts.data.map((post) => ({
|
|
|
|
|
params: { slug: post.attributes.Slug },
|
|
|
|
|
}))
|
|
|
|
|
return {
|
|
|
|
|
paths,
|
|
|
|
|
fallback: true // false or 'blocking'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export async function getStaticProps({params}) {
|
2021-02-04 14:27:14 +11:00
|
|
|
const { serverRuntimeConfig, publicRuntimeConfig } = getConfig()
|
2022-07-01 16:43:50 +10:00
|
|
|
const conf = config
|
2022-06-12 15:12:28 +10:00
|
|
|
const slug = params.slug
|
2022-06-17 21:57:06 +10:00
|
|
|
|
|
|
|
|
const article_obj = await getSinglePost(slug)
|
2022-06-12 15:12:28 +10:00
|
|
|
|
2022-06-20 15:22:16 +10:00
|
|
|
var filters = {};
|
|
|
|
|
|
|
|
|
|
if (article_obj.project.data != null) {
|
|
|
|
|
filters = (
|
|
|
|
|
{
|
|
|
|
|
project: {
|
|
|
|
|
Slug: article_obj.project.data.attributes.Slug
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-12 15:12:28 +10:00
|
|
|
const qs = require('qs')
|
|
|
|
|
const query = qs.stringify({
|
|
|
|
|
pagination: {
|
|
|
|
|
limit: 5
|
|
|
|
|
},
|
2022-06-20 15:22:16 +10:00
|
|
|
filters,
|
2022-06-12 15:12:28 +10:00
|
|
|
sort: ['publishedAt:desc']
|
|
|
|
|
}, {
|
|
|
|
|
encodeValuesOnly: true,
|
|
|
|
|
})
|
2020-12-06 21:49:37 +11:00
|
|
|
|
2022-06-12 15:12:28 +10:00
|
|
|
const storiesQuery = await fetch(serverRuntimeConfig.base_path + `articles?${query}`, {
|
|
|
|
|
headers: new Headers({
|
|
|
|
|
'Authorization': serverRuntimeConfig.strapi_token,
|
|
|
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const storydata = await storiesQuery.json()
|
|
|
|
|
const stories = storydata.data
|
2021-02-04 14:27:14 +11:00
|
|
|
|
|
|
|
|
const pagedata = {
|
2022-06-12 15:12:28 +10:00
|
|
|
'title': "Angry Beanie - " + article_obj.Title
|
2021-02-04 14:27:14 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const secres = await fetch(serverRuntimeConfig.base_path + '/api/sections')
|
2020-12-06 21:49:37 +11:00
|
|
|
const secdata = await secres.json()
|
|
|
|
|
|
|
|
|
|
return {
|
2022-07-01 16:43:50 +10:00
|
|
|
props: { article_obj, sections: secdata, pagedata, stories, serverRuntimeConfig, config }, // will be passed to the page component as props
|
2022-06-14 20:58:06 +10:00
|
|
|
revalidate: 60
|
2020-12-06 21:49:37 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|