Add an 'all organizers' option to event filter
This commit is contained in:
1 parent
0fdc63bdd8
commit
5702c2aafb
2 files changed
+17
-7
No files matched your search
+1
-1
@@ -237,7 +237,7 @@ exports.createPages = ({ actions, graphql }) => {
|
||||
.then(() => {
|
||||
return graphql(`
|
||||
{
|
||||
allWordpressWpEventOrganizers(filter: { count: { gt: 0 } }) {
|
||||
allWordpressWpEventOrganizers {
|
||||
edges {
|
||||
node {
|
||||
id
|
||||
|
||||
@@ -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 && (
|
||||
<div className="event-list-filter">
|
||||
<div className="event-list-filter-heading">Se arrangementer av</div>
|
||||
<div className="event-list-filter-heading">Se arrangementer fra</div>
|
||||
<Dropdown
|
||||
className="event-list-filter-dropdown"
|
||||
options={organizerOptions}
|
||||
onChange={handleOrganizerFilterChange}
|
||||
value={organizerOptionsDefault}
|
||||
placeholder="Arrangør"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in new issue
Block a user