import type { Device } from '@seamapi/types/connect'
import { OnlineStatusAccountOfflineIcon } from 'lib/icons/OnlineStatusAccountOffline.js'
import { OnlineStatusDeviceOfflineIcon } from 'lib/icons/OnlineStatusDeviceOffline.js'
import { OnlineStatusOnlineIcon } from 'lib/icons/OnlineStatusOnline.js'
interface OnlineStatusProps {
device: Device
}
export function OnlineStatus(props: OnlineStatusProps): JSX.Element {
const { device } = props
return (
{isDeviceAccountOffline(device) ? (
) : (
)}
)
}
function AccountOfflineContent(): JSX.Element {
return (
<>
{t.accountOffline}
>
)
}
function AccountOnlineContent(props: { isOnline: boolean }): JSX.Element {
const { isOnline } = props
if (isOnline) {
return (
<>
{t.online}
>
)
}
return (
<>
{t.deviceOffline}
>
)
}
export const isDeviceAccountOffline = (device: Device): boolean =>
device.errors.filter((error) => error.error_code === 'account_disconnected')
.length > 0
const t = {
online: 'Online',
accountOffline: 'Account Offline',
deviceOffline: 'Device Offline',
}