import { useMutation } from '@apollo/react-hooks' import { makeStyles } from '@material-ui/core' import gql from 'graphql-tag' import * as R from 'ramda' import React, { useState } from 'react' import DataTable from 'src/components/tables/DataTable' import CashUnitDetails from 'src/pages/Maintenance/CashUnitDetails' import Wizard from 'src/pages/Maintenance/Wizard/Wizard' import helper from 'src/pages/Maintenance/helper' import { fromNamespace } from 'src/utils/config' import styles from './Cassettes.styles' const useStyles = makeStyles(styles) const SET_CASSETTE_BILLS = gql` mutation MachineAction( $deviceId: ID! $action: MachineAction! $cashUnits: CashUnitsInput ) { machineAction(deviceId: $deviceId, action: $action, cashUnits: $cashUnits) { deviceId cashUnits { cashbox cassette1 cassette2 cassette3 cassette4 stacker1f stacker1r stacker2f stacker2r stacker3f stacker3r } } } ` const widths = { name: 0, cashbox: 175, cassettes: 585, edit: 90 } const CashCassettes = ({ machine, config, refetchData, bills }) => { const classes = useStyles() const [wizard, setWizard] = useState(false) const cashout = config && fromNamespace('cashOut')(config) const locale = config && fromNamespace('locale')(config) const fiatCurrency = locale?.fiatCurrency const getCashoutSettings = deviceId => fromNamespace(deviceId)(cashout) const elements = R.filter(it => it.name !== 'name')( helper.getElements(classes, config, bills, setWizard, widths) ) const [setCassetteBills, { error }] = useMutation(SET_CASSETTE_BILLS, { refetchQueries: () => refetchData() }) const onSave = (_, cashbox, cassettes) => setCassetteBills({ variables: { action: 'setCassetteBills', deviceId: machine.deviceId, cashbox, ...cassettes } }) const InnerCashUnitDetails = ({ it }) => ( ) return machine.name ? ( <> {wizard && ( { setWizard(false) }} error={error?.message} save={onSave} locale={locale} /> )} ) : null } export default CashCassettes