import { useQuery, gql } from '@apollo/client' import Breadcrumbs from '@mui/material/Breadcrumbs' import NavigateNextIcon from '@mui/icons-material/NavigateNext' import * as R from 'ramda' import React, { useState } from 'react' import { Link, useLocation, useParams } from 'wouter' import { TL1, TL2, Label3 } from '../../components/typography' import Cassettes from './MachineComponents/Cassettes' import Commissions from './MachineComponents/Commissions' import Details from './MachineComponents/Details' import Overview from './MachineComponents/Overview' import Transactions from './MachineComponents/Transactions' const GET_INFO = gql` query getMachine($deviceId: ID!, $billFilters: JSONObject) { machine(deviceId: $deviceId) { name deviceId paired lastPing pairedAt version model cashUnits { cashbox cassette1 cassette2 cassette3 cassette4 recycler1 recycler2 recycler3 recycler4 recycler5 recycler6 } numberOfCassettes numberOfRecyclers statuses { label type } downloadSpeed responseTime packetLoss latestEvent { note } } bills(filters: $billFilters) { id fiat deviceId created } config } ` const MachineRoute = () => { const [, navigate] = useLocation() const [loading, setLoading] = useState(true) const { id: deviceId } = useParams() const { data, refetch } = useQuery(GET_INFO, { onCompleted: data => { if (data.machine === null) return navigate('/maintenance/machine-status') setLoading(false) }, variables: { deviceId, billFilters: { deviceId, batch: 'none', }, }, }) return !loading && } const Machines = ({ data, refetch }) => { const timezone = R.path(['config', 'locale_timezone'], data) ?? {} const machine = R.path(['machine'])(data) ?? {} const config = R.path(['config'])(data) ?? {} const bills = R.groupBy(bill => bill.deviceId)(R.path(['bills'])(data) ?? []) const machineName = R.path(['name'])(machine) ?? null const machineID = R.path(['deviceId'])(machine) ?? null return (
}> Dashboard {machineName}
Details
Cash box & cassettes
Latest transactions
Commissions
) } export default MachineRoute