feat: Wallet admin wizard feat: Notifications admin wizard feat: Twillio admin wizard feat: Commissions admin wizard feat: OperatorInfor admin wizard feat: Locales admin wizard feat: wizard admin route fix: better margin for admin wizard sidebar feat: allow FormRenderer to receive a field xs size feat: add a few flags on notifications, to reuse component parts as desired fix: wrong gql fix: missnig prop fix: eslint fix: radio styles feat: configure bitgo wallet for single cryptocurrency on wizard fix: eslint feat: set up infura wallet on wizard feat: exchange account config on wizard fix: choose wallet choose exchange DRY fix: layout fix: rebase wizard to use commissions new changes fix: typo fix: eslint fix: horizontal radios feat: radio interacts with mailgun enabled/disabled state fix: use yup to validate wizard steps fix: eslint feat: add xl size for button feat: admin wizard splash feat: use fullsize modal for wizard fix: eslint feat: Footer styles feat: wizard footer styles fix: wallet step styles fix: zeplin spec fix: zeplin styles feat: blockcypher link fix: xs can only be used on item feat: minimize wizard footer on click away feat: read blockcypher config fix: all set title styles do not match fix: no need to wrap the wrapper feat: allow to override Setup table width for wizard fix: wrapper class for wizard steps fix: layout elements for mailgun step feat: use yup to validate wizard steps style: eslint feat: operator info components open by default on wizard fix: all set table is too wide feat: full example modal feat: check if wallet has valid config feat: check if twilio has valid config
100 lines
2.2 KiB
JavaScript
100 lines
2.2 KiB
JavaScript
import { makeStyles } from '@material-ui/core'
|
|
import Grid from '@material-ui/core/Grid'
|
|
import React from 'react'
|
|
import {
|
|
Route,
|
|
Switch,
|
|
Redirect,
|
|
useLocation,
|
|
useHistory
|
|
} from 'react-router-dom'
|
|
|
|
import Sidebar from 'src/components/layout/Sidebar'
|
|
import TitleSection from 'src/components/layout/TitleSection'
|
|
|
|
import CoinAtmRadar from './CoinATMRadar'
|
|
import ContactInfo from './ContactInfo'
|
|
import ReceiptPrinting from './ReceiptPrinting'
|
|
import TermsConditions from './TermsConditions'
|
|
|
|
const styles = {
|
|
grid: {
|
|
flex: 1,
|
|
height: '100%'
|
|
},
|
|
content: {
|
|
flex: 1,
|
|
marginLeft: 48,
|
|
paddingTop: 15
|
|
}
|
|
}
|
|
|
|
const useStyles = makeStyles(styles)
|
|
|
|
const innerRoutes = [
|
|
{
|
|
label: 'Contact information',
|
|
route: '/settings/operator-info/contact-info',
|
|
component: ContactInfo
|
|
},
|
|
{
|
|
label: 'Receipt',
|
|
route: '/settings/operator-info/receipt-printing',
|
|
component: ReceiptPrinting
|
|
},
|
|
{
|
|
label: 'Coin ATM Radar',
|
|
route: '/settings/operator-info/coin-atm-radar',
|
|
component: CoinAtmRadar
|
|
},
|
|
{
|
|
label: 'Terms & Conditions',
|
|
route: '/settings/operator-info/terms-conditions',
|
|
component: TermsConditions
|
|
}
|
|
]
|
|
|
|
const Routes = ({ wizard }) => (
|
|
<Switch>
|
|
<Redirect
|
|
exact
|
|
from="/settings/operator-info"
|
|
to="/settings/operator-info/contact-info"
|
|
/>
|
|
<Route exact path="/" />
|
|
{innerRoutes.map(({ route, component: Page, key }) => (
|
|
<Route path={route} key={key}>
|
|
<Page name={key} wizard={wizard} />
|
|
</Route>
|
|
))}
|
|
</Switch>
|
|
)
|
|
|
|
const OperatorInfo = ({ wizard = false }) => {
|
|
const classes = useStyles()
|
|
const history = useHistory()
|
|
const location = useLocation()
|
|
|
|
const isSelected = it => location.pathname === it.route
|
|
|
|
const onClick = it => history.push(it.route)
|
|
|
|
return (
|
|
<>
|
|
<TitleSection title="Operator information"></TitleSection>
|
|
<Grid container className={classes.grid}>
|
|
<Sidebar
|
|
data={innerRoutes}
|
|
isSelected={isSelected}
|
|
displayName={it => it.label}
|
|
onClick={onClick}
|
|
/>
|
|
<div className={classes.content}>
|
|
<Routes wizard={wizard} />
|
|
</div>
|
|
</Grid>
|
|
</>
|
|
)
|
|
}
|
|
|
|
export default OperatorInfo
|