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 &&