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 + } + } + } + } +`