Files
Evergreen-Health-Mobile/src/devices/useDeviceCardState.ts
T
2026-10-09 16:46:35 +08:00

14 lines
952 B
TypeScript

import type { HomeAssistantDiscoveredDevice } from '../services/health'
import { useDeviceControlContext } from './controlContext'
/** 专属详情必须检查当前设备的参数实体,不能用在线设备数或默认值冒充读数。 */
export function useDeviceCardState(device: () => HomeAssistantDiscoveredDevice) {
const context = useDeviceControlContext()
const available = (parameter: string) => context.isParameterAvailable(parameter, device())
const readable = (parameter: string) => context.hasParameterReading(parameter, device())
const display = (parameter: string, value: unknown, suffix = '') => readable(parameter) ? `${value}${suffix}` : '--'
const powerAvailable = () => context.isDeviceControlAvailable(device())
const powerLabel = (on: string, off: string) => powerAvailable() ? context.isDeviceTurnedOn(device()) ? on : off : '暂不可用'
return { available, readable, display, powerAvailable, powerLabel }
}