forked from ustaxes/UsTaxes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
debug.tsx
49 lines (42 loc) · 1.33 KB
/
debug.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import { ReactElement } from 'react'
import { IconButton, makeStyles } from '@material-ui/core'
import { Star } from '@material-ui/icons'
import fc from 'fast-check'
import { useDispatch, YearsTaxesState } from 'ustaxes/redux'
import { setInfo } from 'ustaxes/redux/actions'
import { Information } from 'ustaxes/core/data'
import * as arbitraries from 'ustaxes/core/tests/arbitraries'
import * as prand from 'pure-rand'
import { useSelector } from 'react-redux'
import { TaxYears } from 'ustaxes/data'
const useStyles = makeStyles(() => ({
root: {
position: 'absolute',
top: '0px',
right: '30px'
},
button: {}
}))
export const StateLoader = (): ReactElement => {
if (process.env.NODE_ENV === 'production') {
return <></>
}
const dispatch = useDispatch()
const year = useSelector((state: YearsTaxesState) => state.activeYear)
const classes = useStyles()
const gen = new fc.Random(prand.mersenne(new Date().getMilliseconds()))
const information = arbitraries.forYear(TaxYears[year]).information()
const generator = (): Information =>
information.noShrink().generate(gen).value
return (
<div className={classes.root}>
<IconButton
className={classes.button}
onClick={() => dispatch(setInfo(generator()))}
>
<Star />
Seed random state
</IconButton>
</div>
)
}