Pages fetch raids and store them in the app state. We needed to update this to pull raid groups instead
30 lines
936 B
TypeScript
30 lines
936 B
TypeScript
import { elements, allElement } from '~data/elements'
|
|
|
|
export default (
|
|
query: { [index: string]: string },
|
|
raidGroups: RaidGroup[]
|
|
) => {
|
|
// Extract recency filter
|
|
const recencyParam: number = parseInt(query.recency)
|
|
|
|
// Extract element filter
|
|
const elementParam: string = query.element
|
|
const teamElement: TeamElement | undefined =
|
|
elementParam === 'all'
|
|
? allElement
|
|
: elements.find(
|
|
(element) => element.name.en.toLowerCase() === elementParam
|
|
)
|
|
|
|
// Extract raid filter
|
|
const allRaids = raidGroups.flatMap((group) => group.raids)
|
|
const raidParam: string = query.raid
|
|
const raid: Raid | undefined = allRaids.find((r) => r.slug === raidParam)
|
|
|
|
// Return filter object
|
|
return {
|
|
recency: recencyParam && recencyParam !== -1 ? recencyParam : undefined,
|
|
element: teamElement && teamElement.id > -1 ? teamElement.id : undefined,
|
|
raid: raid ? raid.id : undefined,
|
|
}
|
|
}
|