Filter out old events for smaller page payloads

This commit is contained in:
ponas committed 2019-08-06 03:42:24 +02:00
1 parent d008c75a93
commit af1bc9d332
4 files changed
+61 -11

No files matched your search

+27
View File
@@ -2,10 +2,17 @@ const _ = require('lodash')
const path = require('path')
const { createFilePath } = require('gatsby-source-filesystem')
const { paginate } = require('gatsby-awesome-pagination')
const moment = require('moment')
const getOnlyPublished = edges =>
_.filter(edges, ({ node }) => node.status === 'publish')
// Used to filter out older events from queries
const eventsNotBefore = moment()
.startOf('day')
.subtract(1, 'days')
.toISOString()
exports.createPages = ({ actions, graphql }) => {
const { createPage } = actions
@@ -275,6 +282,7 @@ exports.createPages = ({ actions, graphql }) => {
slug: eventOrganizer.slug,
description: eventOrganizer.description,
association: eventOrganizer.association,
after: eventsNotBefore,
},
})
}
@@ -440,3 +448,22 @@ exports.onCreateNode = ({ node, actions, getNode }) => {
})
}
}
exports.onCreatePage = ({ page, actions }) => {
const { createPage, deletePage } = actions
// We need to add context to a few pages
const pagesWithContext = ['/', '/program/']
if (!pagesWithContext.includes(page.path)) {
return
}
deletePage(page)
createPage({
...page,
context: {
...page.context,
after: eventsNotBefore,
},
})
}
+24 -7
View File
@@ -23,12 +23,23 @@ export default class IndexPage extends React.Component {
<section className="front-page-info">
<div className="visit-us">
<h2 className="section-title">Besøk oss</h2>
<p>Chateau Neuf ligger på Majorstua i Oslo, i <a href="https://www.google.no/maps/place/Slemdalsveien+15,+0369+Oslo/data=!4m2!3m1!1s0x46416dc4ab53aa7d:0x5629681f36c1c8af?sa=X&ved=2ahUKEwjR94re3unjAhUj4aYKHRLOAuwQ8gEwAHoECBQQAQ" target="_blank">Slemdalsveien 15</a>.</p>
<p>
Chateau Neuf ligger på Majorstua i Oslo, i{' '}
<a
href="https://www.google.no/maps/place/Slemdalsveien+15,+0369+Oslo/data=!4m2!3m1!1s0x46416dc4ab53aa7d:0x5629681f36c1c8af?sa=X&ved=2ahUKEwjR94re3unjAhUj4aYKHRLOAuwQ8gEwAHoECBQQAQ"
target="_blank"
rel="noopener noreferrer"
>
Slemdalsveien 15
</a>
.
</p>
<div className="visit-us_links">
<Link to="/bli-aktiv/" className="button button-small">
<Link to="/praktisk/" className="button button-small">
Praktisk informasjon
</Link><br />
<Link to="/bli-aktiv/" className="button button-small">
</Link>
<br />
<Link to="/aapningstider/" className="button button-small">
Åpningstider
</Link>
</div>
@@ -39,7 +50,10 @@ export default class IndexPage extends React.Component {
Bli frivillig
</Link>
<p>
Chateau Neuf drives i stor grad av frivillige. Vil du være med å arrangere greier på studentersamfundet? Sjekk ut de ulike <Link to="/bli-aktiv/">foreningene</Link> som holder til på huset for å finne ut hva som passer for deg.
Chateau Neuf drives i stor grad av frivillige. Vil du være med å
arrangere greier på studentersamfundet? Sjekk ut de ulike{' '}
<Link to="/bli-aktiv/">foreningene</Link> som holder til på
huset for å finne ut hva som passer for deg.
</p>
<Link to="/bli-aktiv/" className="button button-small">
Les mer om å bli frivillig
@@ -65,8 +79,11 @@ IndexPage.propTypes = {
}
export const pageQuery = graphql`
query {
allWordpressWpEvents(sort: { fields: start_time, order: ASC }) {
query IndexPage($after: Date!) {
allWordpressWpEvents(
sort: { fields: start_time, order: ASC }
filter: { start_time: { gt: $after } }
) {
edges {
node {
...EventListFields
+5 -2
View File
@@ -34,8 +34,11 @@ EventProgram.propTypes = {
}
export const pageQuery = graphql`
query {
allWordpressWpEvents(sort: { fields: start_time, order: ASC }) {
query ProgramPage($after: Date!) {
allWordpressWpEvents(
filter: { start_time: { gt: $after } }
sort: { fields: start_time, order: ASC }
) {
edges {
node {
...EventListFields
+5 -2
View File
@@ -59,9 +59,12 @@ EventOrganizerPage.propTypes = {
}
export const pageQuery = graphql`
query EventOrganizerPage($slug: String!) {
query EventOrganizerPage($slug: String!, $after: Date!) {
allWordpressWpEvents(
filter: { event_organizers: { elemMatch: { slug: { eq: $slug } } } }
filter: {
event_organizers: { elemMatch: { slug: { eq: $slug } } }
start_time: { gt: $after }
}
sort: { fields: date, order: DESC }
) {
totalCount