import { Box } from '@material-ui/core' import { makeStyles } from '@material-ui/core/styles' import { getTimezoneOffset } from 'date-fns-tz' import * as R from 'ramda' import React, { useState } from 'react' import { H2 } from 'src/components/typography' import { Select } from 'src/components/inputs' import { MINUTE } from 'src/utils/time' import styles from '../../Analytics.styles' import Graph from '../../graphs/Graph' import LegendEntry from '../LegendEntry' const useStyles = makeStyles(styles) const options = [ { code: 'hourOfDayTransactions', display: 'Transactions' }, { code: 'hourOfDayVolume', display: 'Volume' } ] const HourOfDayBarGraphHeader = ({ title, period, data, machines, selectedMachine, handleMachineChange, selectedDay, dayOptions, handleDayChange, timezone, currency }) => { const classes = useStyles() const [graphType /*, setGraphType */] = useState(options[0].code) const legend = { cashIn:
, cashOut: } const offset = getTimezoneOffset(timezone) const txsPerWeekday = R.reduce( (acc, value) => { const created = new Date(value.created) created.setTime( created.getTime() + created.getTimezoneOffset() * MINUTE + offset ) switch (created.getDay()) { case 0: acc.sunday.push(value) break case 1: acc.monday.push(value) break case 2: acc.tuesday.push(value) break case 3: acc.wednesday.push(value) break case 4: acc.thursday.push(value) break case 5: acc.friday.push(value) break case 6: acc.saturday.push(value) break default: throw new Error('Day of week not recognized') } return acc }, R.fromPairs(R.map(it => [it.code, []], dayOptions)), data ) return ( <>