import { useRouter } from 'next/router' import { Select, DatePicker } from './form' import { WHENS } from '../lib/constants' import { whenToFrom } from '../lib/time' export function UsageHeader () { const router = useRouter() const select = async values => { const { when, ...query } = values if (when !== 'custom') { delete query.from; delete query.to } if (query.from && !query.to) return await router.push({ pathname: `/stackers/${when}`, query }) } const when = router.query.when || 'day' return ( <div className='text-muted fw-bold my-0 d-flex align-items-center flex-wrap'> <div className='text-muted fw-bold my-2 d-flex align-items-center'> stacker analytics for <Select groupClassName='mb-0 mx-2' className='w-auto' name='when' size='sm' items={WHENS} value={when} noForm onChange={(formik, e) => { const range = e.target.value === 'custom' ? { from: whenToFrom(when), to: Date.now() } : {} select({ when: e.target.value, ...range }) }} /> </div> {when === 'custom' && <DatePicker noForm fromName='from' toName='to' className='p-0 px-2 mb-0' onChange={(formik, [from, to], e) => { select({ when, from: from.getTime(), to: to.getTime() }) }} from={router.query.from} to={router.query.to} when={when} />} </div> ) }