* fix: make all fields required on the Terms & Conditions page if Show on screen is enabled fix: enable/disable the Terms & Conditions form based on the Show on screen toggle fix: replaced deactivated field with plain text when not editing fix: make de non editable text content field scrollable style: make it follow the same style as the other screens, with the edit button and links to save and cancel feat: created Prompt component to avoid leaving pages without saving feat: applied component to the editable table feat: applied component to the Cashout, Commissions, Locales, Cashboxes, Notifications, CryptoBalanceOverrides and Wallet pages feat: applied component to the ContactInfo and ReceiptPrinting pages refactor: export the default prompt message to be used in other contexts fix: applied prompt component to the Operator Info pages fix: create routes for the operator info components feat: applied the Prompt component to the Contact Info and Receipt pages feat: applied the Prompt component to the Terms & Conditions page * refactor: move prompt to components * feat: use formik on the boolean properties table * chore: removed console.logs chore: removed comments refactor: moved BooleanCell to the BooleanPropertiesTable file and make it not a formik field
100 lines
2.1 KiB
JavaScript
100 lines
2.1 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 = () => (
|
|
<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} />
|
|
</Route>
|
|
))}
|
|
</Switch>
|
|
)
|
|
|
|
const OperatorInfo = () => {
|
|
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 />
|
|
</div>
|
|
</Grid>
|
|
</>
|
|
)
|
|
}
|
|
|
|
export default OperatorInfo
|