Fix /tournaments when groupIds are invalid

This commit is contained in:
Austin Chen 2022-08-26 09:36:24 -07:00
parent 889290c66b
commit 97dcd7f7f8

View File

@ -6,6 +6,7 @@ import {
} from '@heroicons/react/solid' } from '@heroicons/react/solid'
import clsx from 'clsx' import clsx from 'clsx'
import { Contract } from 'common/contract' import { Contract } from 'common/contract'
import { Group } from 'common/group'
import { formatLargeNumber } from 'common/util/format' import { formatLargeNumber } from 'common/util/format'
import dayjs, { Dayjs } from 'dayjs' import dayjs, { Dayjs } from 'dayjs'
import customParseFormat from 'dayjs/plugin/customParseFormat' import customParseFormat from 'dayjs/plugin/customParseFormat'
@ -74,15 +75,15 @@ export async function getStaticProps() {
const groupIds = tourneys const groupIds = tourneys
.map((data) => data.groupId) .map((data) => data.groupId)
.filter((id) => id != undefined) as string[] .filter((id) => id != undefined) as string[]
const groups = await Promise.all(groupIds.map(getGroup)) const groups = (await Promise.all(groupIds.map(getGroup)))
// Then remove undefined groups
.filter(Boolean) as Group[]
const contracts = await Promise.all( const contracts = await Promise.all(
groups.map((g) => listContractsByGroupSlug(g?.slug ?? '')) groups.map((g) => listContractsByGroupSlug(g?.slug ?? ''))
) )
const markets = Object.fromEntries( const markets = Object.fromEntries(groups.map((g, i) => [g.id, contracts[i]]))
groupIds.map((id, i) => [id, contracts[i]])
)
const groupMap = keyBy(groups, 'id') const groupMap = keyBy(groups, 'id')
const numPeople = mapValues(groupMap, (g) => g?.memberIds.length) const numPeople = mapValues(groupMap, (g) => g?.memberIds.length)
@ -110,10 +111,11 @@ export default function TournamentPage(props: {
{tourneys.map(({ groupId, ...data }) => ( {tourneys.map(({ groupId, ...data }) => (
<Section <Section
key={groupId}
{...data} {...data}
url={groupPath(slugs[groupId])} url={groupPath(slugs[groupId])}
ppl={numPeople[groupId]} ppl={numPeople[groupId] ?? 0}
markets={markets[groupId]} markets={markets[groupId] ?? []}
/> />
))} ))}
</Col> </Col>