From 5702c2aafb9fd733430f7b214c22ae1dd00bf1f0 Mon Sep 17 00:00:00 2001 From: Jonas Braathen Date: Fri, 2 Aug 2019 00:03:23 +0200 Subject: [PATCH] Add an 'all organizers' option to event filter --- gatsby-node.js | 2 +- src/components/EventList.js | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index b85e6ba..ab6d7bb 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -237,7 +237,7 @@ exports.createPages = ({ actions, graphql }) => { .then(() => { return graphql(` { - allWordpressWpEventOrganizers(filter: { count: { gt: 0 } }) { + allWordpressWpEventOrganizers { edges { node { id diff --git a/src/components/EventList.js b/src/components/EventList.js index 08a52ad..b6fa989 100644 --- a/src/components/EventList.js +++ b/src/components/EventList.js @@ -108,6 +108,10 @@ const EventList = props => { } const handleOrganizerFilterChange = ({ value }) => { + if (!value) { + navigate('/program/') + return + } navigate(`/organizer/${value}/`) } @@ -135,9 +139,16 @@ const EventList = props => { const data = useStaticQuery(eventOrganizersQuery) const { edges: organizers } = data.allWordpressWpEventOrganizers - const organizerOptions = organizers.map(({ node: organizer }) => { - return { value: organizer.slug, label: organizer.name } - }) + const allOrganizersOption = { + value: null, + label: 'Alle arrangører', + } + const organizerOptions = [ + allOrganizersOption, + ...organizers.map(({ node: organizer }) => { + return { value: organizer.slug, label: organizer.name } + }), + ] const selectedOrganizer = filterOrganizer !== null ? organizers.find(obj => filterOrganizer === obj.node.slug).node @@ -148,7 +159,7 @@ const EventList = props => { value: selectedOrganizer.slug, label: selectedOrganizer.name, } - : null + : allOrganizersOption if (maxEvents) { filteredEvents = filteredEvents.slice(0, maxEvents) @@ -161,13 +172,12 @@ const EventList = props => { {children !== null && children} {showFilter && organizers && (
-
Se arrangementer av
+
Se arrangementer fra
)}