diff --git a/packages/suite/src/components/suite/banners/SuiteBanners/FirmwareRevisionCheckBanner.tsx b/packages/suite/src/components/suite/banners/SuiteBanners/FirmwareRevisionCheckBanner.tsx index ef6902358c6c..20d11bad5a47 100644 --- a/packages/suite/src/components/suite/banners/SuiteBanners/FirmwareRevisionCheckBanner.tsx +++ b/packages/suite/src/components/suite/banners/SuiteBanners/FirmwareRevisionCheckBanner.tsx @@ -1,20 +1,36 @@ +import { isDeviceAcquired } from '@suite-common/suite-utils'; import { selectDevice } from '@suite-common/wallet-core'; import { Banner } from '@trezor/components'; +import { FirmwareRevisionCheckError } from '@trezor/connect'; import { HELP_CENTER_FIRMWARE_REVISION_CHECK } from '@trezor/urls'; import { Translation, TrezorLink } from 'src/components/suite'; import { useSelector } from 'src/hooks/suite'; +const getMessage = (error: FirmwareRevisionCheckError) => { + switch (error) { + case 'cannot-perform-check-offline': + return 'TR_DEVICE_FIRMWARE_REVISION_CHECK_UNABLE_TO_PERFORM'; + case 'other-error': + return 'TR_FIRMWARE_REVISION_CHECK_OTHER_ERROR'; + default: + return 'TR_FIRMWARE_REVISION_CHECK_FAILED'; + } +}; + export const FirmwareRevisionCheckBanner = () => { const device = useSelector(selectDevice); + if ( + !isDeviceAcquired(device) || + device.authenticityChecks?.firmwareRevision?.success !== false + ) { + return null; + } + + const message = getMessage(device.authenticityChecks.firmwareRevision.error); const wasOffline = - device?.features && - device.authenticityChecks?.firmwareRevision?.success === false && device.authenticityChecks.firmwareRevision.error === 'cannot-perform-check-offline'; - const message = wasOffline - ? 'TR_DEVICE_FIRMWARE_REVISION_CHECK_UNABLE_TO_PERFORM' - : 'TR_FIRMWARE_REVISION_CHECK_FAILED'; return (