lamassu-server/new-lamassu-admin/src/pages/OperatorInfo/MachineScreens.jsx
2025-04-11 09:46:44 +01:00

79 lines
2 KiB
JavaScript

import { useQuery, useMutation, gql } from "@apollo/client";
import { makeStyles } from '@material-ui/core/styles'
import * as R from 'ramda'
import React, { memo } from 'react'
import { H4, P, Label2 } from 'src/components/typography'
import { Switch } from 'src/components/inputs'
import { fromNamespace, toNamespace, namespaces } from 'src/utils/config'
import { global } from './OperatorInfo.styles'
const useStyles = makeStyles(global)
const GET_CONFIG = gql`
query getData {
config
}
`
const SAVE_CONFIG = gql`
mutation Save($config: JSONObject) {
saveConfig(config: $config)
}
`
const MachineScreens = memo(({ wizard }) => {
const classes = useStyles()
const { data } = useQuery(GET_CONFIG)
const [saveConfig] = useMutation(SAVE_CONFIG, {
refetchQueries: () => ['getData']
})
const machineScreensConfig =
data?.config && fromNamespace(namespaces.MACHINE_SCREENS, data.config)
const ratesScreenConfig =
data?.config &&
R.compose(
fromNamespace('rates'),
fromNamespace(namespaces.MACHINE_SCREENS)
)(data.config)
if (!machineScreensConfig) return null
return (
<>
<div className={classes.header}>
<H4>Rates screen</H4>
</div>
<div className={classes.switchRow}>
<P>Enable rates screen</P>
<div className={classes.switch}>
<Switch
checked={ratesScreenConfig.active}
onChange={event =>
saveConfig({
variables: {
config: R.compose(
toNamespace(namespaces.MACHINE_SCREENS),
toNamespace('rates')
)(
R.merge(ratesScreenConfig, {
active: event.target.checked
})
)
}
})
}
/>
<Label2>{ratesScreenConfig.active ? 'Yes' : 'No'}</Label2>
</div>
</div>
</>
)
})
export default MachineScreens