import { createElement, useContext } from 'react' import { Button, Space } from 'antd' import PropTypes from 'prop-types' import { getModelByName } from '../../../database/ObjectModels' import { AuthContext } from '../context/AuthContext' import PlayCircleIcon from '../../Icons/PlayCircleIcon' import PauseCircleIcon from '../../Icons/PauseCircleIcon' import StopCircleIcon from '../../Icons/StopCircleIcon' const findAction = (actions, name) => { for (const action of actions) { if (action.name === name) return action if (action.children) { const found = findAction(action.children, name) if (found) return found } } return null } const isActionDisabled = (action, objectData, userProfile, disabled) => { if (disabled) return true if (!action?.disabled) return false if (typeof action.disabled === 'function') { return action.disabled({ ...objectData, _user: userProfile }) } return action.disabled } const PrinterControlButtons = ({ callAction, objectData, disabled }) => { const { userProfile } = useContext(AuthContext) const model = getModelByName('printer') const startQueueAction = findAction(model.actions, 'startQueue') const pauseJobAction = findAction(model.actions, 'pauseJob') const resumeJobAction = findAction(model.actions, 'resumeJob') const cancelJobAction = findAction(model.actions, 'cancelJob') const isPaused = objectData?.state?.type === 'paused' const startAction = isPaused ? resumeJobAction : startQueueAction const startActionName = isPaused ? 'resumeJob' : 'startQueue' return (