From d072bdfe18d396bd2d5064655255a6e8e1e7ee8d Mon Sep 17 00:00:00 2001 From: Jonas Braathen Date: Wed, 24 Jul 2019 17:14:58 +0200 Subject: [PATCH] Also add the event organizer template --- src/templates/event-organizer.js | 82 ++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/templates/event-organizer.js diff --git a/src/templates/event-organizer.js b/src/templates/event-organizer.js new file mode 100644 index 0000000..137aa43 --- /dev/null +++ b/src/templates/event-organizer.js @@ -0,0 +1,82 @@ +import React from 'react' +import PropTypes from 'prop-types' +import { graphql } from 'gatsby' +import Layout from '../components/Layout' +import EventList from '../components/EventList' +import moment from 'moment' +import 'moment/locale/nb' + +moment.locale('nb') + +export default class EventOrganizerPage extends React.Component { + render() { + const { data, pageContext } = this.props + const { edges: events, totalCount } = data.allWordpressWpEvents + const { name, description } = pageContext + + const future = events.filter(({ node: event }) => { + const startTime = moment(event.start_time) + return !!startTime.isSameOrAfter(new Date(), 'day') + }) + const past = events.filter(({ node: event }) => { + const startTime = moment(event.start_time) + return !startTime.isSameOrAfter(new Date(), 'day') + }) + + return ( + +
+

{name}

+
+ {future.length !== 0 && ( + + )} + {past.length !== 0 && ( + + )} +
+
+ ) + } +} + +EventOrganizerPage.propTypes = { + data: PropTypes.shape({ + allWordpressWpEventTypes: PropTypes.shape({ + edges: PropTypes.array, + }), + }), + pageContext: PropTypes.shape({ + name: PropTypes.string, + slug: PropTypes.string, + description: PropTypes.string, + }), +} + +export const pageQuery = graphql` + query EventOrganizerPage($slug: String!) { + site { + siteMetadata { + title + } + } + allWordpressWpEvents( + filter: { event_organizers: { elemMatch: { slug: { eq: $slug } } } } + sort: { fields: date, order: DESC } + ) { + totalCount + edges { + node { + ...EventListFields + } + } + } + } +`