import { ClockIcon } from '@heroicons/react/outline'
import {
ChevronLeftIcon,
ChevronRightIcon,
UsersIcon,
} from '@heroicons/react/solid'
import clsx from 'clsx'
import { Contract } from 'common/contract'
import { formatLargeNumber } from 'common/util/format'
import dayjs, { Dayjs } from 'dayjs'
import customParseFormat from 'dayjs/plugin/customParseFormat'
import { throttle } from 'lodash'
import { ReactNode, useEffect, useRef, useState } from 'react'
import { ContractCard } from 'web/components/contract/contract-card'
import { DateTimeTooltip } from 'web/components/datetime-tooltip'
import { Col } from 'web/components/layout/col'
import { Row } from 'web/components/layout/row'
import { Page } from 'web/components/page'
import { SEO } from 'web/components/SEO'
import { useContracts } from 'web/hooks/use-contracts'
import { useGroup } from 'web/hooks/use-group'
import utc from 'dayjs/plugin/utc'
import timezone from 'dayjs/plugin/timezone'
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
const toDate = (d: string) => dayjs(d, 'MMM D, YYYY').tz('America/Los_Angeles')
type Tourney = {
title: string
url?: string
blurb: string // actual description in the click-through
award?: number
endTime?: Dayjs
// TODO: somehow get the markets
groupId?: string
}
const tourneys: Tourney[] = [
{
title: 'CSPI/Salem Tournament',
blurb:
'Forecasting contest - top 5 can become Salem Center’s next research fellow.',
url: 'https://salemcenter.manifold.markets/',
award: 25_000,
},
{
title: 'Fantasy Football Stock Exchange',
blurb: 'How many points will each NFL player score?',
url: 'https://manifold.markets/group/fantasy-football-stock-exchange',
award: 500,
endTime: toDate('Jan 6, 2023'),
groupId: 'SxGRqXRpV3RAQKudbcNb',
},
{
title: 'Cause Exploration Prize',
blurb:
'Which new charity ideas will Open Philanthropy find most promising?',
award: 100_000,
endTime: toDate('Sep 9, 2022'),
},
{
title: 'Clearer Thinking Regrant Project',
blurb: 'Something amazing',
award: 1_000_000,
endTime: toDate('Sep 22, 2022'),
},
]
export default function TournamentPage() {
const ffsx = useGroup('SxGRqXRpV3RAQKudbcNb')
const markets = useContracts() ?? []
const ffsxMarkets = markets
.filter((m) => (ffsx?.contractIds ?? []).includes(m.id))
.slice(0, 50)
const ffsxLength = ffsx?.memberIds.length
useEffect(() => console.log(tourneys), [])
return (
Tournaments
{tourneys.map(({ groupId, ...data }) => (
))}