diff --git a/packages/suite/src/components/suite/banners/SuiteBanners/SuiteBanners.tsx b/packages/suite/src/components/suite/banners/SuiteBanners/SuiteBanners.tsx index 577e2371aa5..0dcb14b931b 100644 --- a/packages/suite/src/components/suite/banners/SuiteBanners/SuiteBanners.tsx +++ b/packages/suite/src/components/suite/banners/SuiteBanners/SuiteBanners.tsx @@ -16,6 +16,7 @@ import { import { isTranslationMode } from 'src/utils/suite/l10n'; import { MessageSystemBanner } from '../MessageSystemBanner'; +import { BridgeDeprecated } from './BridgeDeprecatedBanner'; import { FailedBackup } from './FailedBackupBanner'; import { FirmwareAuthenticityCheckBanner } from './FirmwareAuthenticityCheckBanner'; import { FirmwareHashMismatchOnLastUpdateBanner } from './FirmwareHashMismatchOnLastUpdateBanner'; @@ -23,7 +24,6 @@ import { NoBackup } from './NoBackupBanner'; import { NoConnectionBanner } from './NoConnectionBanner'; import { SafetyChecksBanner } from './SafetyChecksBanner'; import { TranslationMode } from './TranslationModeBanner'; -import { BridgeDeprecated } from './BridgeDeprecatedBanner'; const Container = styled.div<{ $isVisible?: boolean }>` width: 100%; @@ -80,7 +80,7 @@ export const SuiteBanners = () => { // Let the user dismiss the warning. banner = setSafetyChecksDismissed(true)} />; priority = 50; - } else if (bridge?.outdated || true) { + } else if (bridge?.outdated) { banner = ; priority = 30; } diff --git a/packages/suite/src/components/suite/modals/ModalSwitcher/ForegroundAppModal.tsx b/packages/suite/src/components/suite/modals/ModalSwitcher/ForegroundAppModal.tsx index 96ac6eb77f2..c18f8994740 100644 --- a/packages/suite/src/components/suite/modals/ModalSwitcher/ForegroundAppModal.tsx +++ b/packages/suite/src/components/suite/modals/ModalSwitcher/ForegroundAppModal.tsx @@ -9,8 +9,8 @@ import { FirmwareUpdate } from 'src/views/firmware/FirmwareUpdate'; import { Recovery } from 'src/views/recovery'; import { SwitchDevice } from 'src/views/suite/SwitchDevice/SwitchDevice'; import { BridgeUnavailable } from 'src/views/suite/bridge'; -import { BridgeRequested } from 'src/views/suite/bridge-requested'; import { BridgeDeprecated } from 'src/views/suite/bridge-deprecated'; +import { BridgeRequested } from 'src/views/suite/bridge-requested'; import { UdevRules } from 'src/views/suite/udev'; import { Version } from 'src/views/suite/version'; diff --git a/packages/suite/src/support/messages.ts b/packages/suite/src/support/messages.ts index f0f264de112..c7590c6c086 100644 --- a/packages/suite/src/support/messages.ts +++ b/packages/suite/src/support/messages.ts @@ -9543,6 +9543,7 @@ export default defineMessages({ id: 'TR_CONNECT_BLUETOOTH_BUTTON', defaultMessage: 'Connect Trezor Safe 7 via Bluetooth', }, + TR_YOUR_BRIDGE_VERSION_WILL_SOON_BE_DEPRECATED: { id: 'TR_YOUR_BRIDGE_VERSION_WILL_SOON_BE_DEPRECATED', defaultMessage: 'Your Trezor Bridge version will soon be deprecated.', @@ -9550,6 +9551,6 @@ export default defineMessages({ TR_BRIDGE_UNINSTALL_INSTRUCTIONS: { id: 'TR_BRIDGE_UNINSTALL_INSTRUCTIONS', defaultMessage: - 'You are running a very old and soon to be deprecated Trezor Bridge version. Please uninstall it from your system. {link}', + 'You are running a very old and soon to be deprecated Trezor Bridge version. Please uninstall it from your system. Learn more', }, }); diff --git a/packages/suite/src/views/suite/bridge-deprecated/index.tsx b/packages/suite/src/views/suite/bridge-deprecated/index.tsx index 472fdf73eff..10207dc896d 100644 --- a/packages/suite/src/views/suite/bridge-deprecated/index.tsx +++ b/packages/suite/src/views/suite/bridge-deprecated/index.tsx @@ -1,9 +1,13 @@ import { Button, Link } from '@trezor/components'; import { UNINSTALL_BRIDGE_URL } from '@trezor/urls'; + import { goto } from 'src/actions/suite/routerActions'; import { Metadata, Modal, Translation } from 'src/components/suite'; import { useDispatch, useLayout } from 'src/hooks/suite'; +/** + * modal that should show users basic information how to uninstall old standalone bridge + */ export const BridgeDeprecated = () => { const dispatch = useDispatch(); @@ -13,12 +17,16 @@ export const BridgeDeprecated = () => { return ( } description={ , + a: chunks => ( + + {chunks} + + ), }} /> } diff --git a/packages/urls/src/urls.ts b/packages/urls/src/urls.ts index 7384716792b..4e66cab93e3 100644 --- a/packages/urls/src/urls.ts +++ b/packages/urls/src/urls.ts @@ -164,3 +164,5 @@ export const ESHOP_KEEP_METAL_SINGLE_SHARE_URL: Url = 'https://trezor.io/trezor-keep-metal-single-share'; export const TRADING_DOWNLOAD_INVITY_APP_URL: Url = 'https://get.invity.io'; + +export const UNINSTALL_BRIDGE_URL: Url = 'https://trezor.io/learn/a/what-is-trezor-bridge'; diff --git a/suite-common/suite-config/src/routes.ts b/suite-common/suite-config/src/routes.ts index b48f17205c8..cf6023af9a5 100644 --- a/suite-common/suite-config/src/routes.ts +++ b/suite-common/suite-config/src/routes.ts @@ -42,6 +42,13 @@ export const routes = [ isForegroundApp: true, params: modalAppParams, }, + { + name: 'suite-bridge-deprecated', + pattern: '/bridge-bridge', + app: 'bridge-deprecated', + isForegroundApp: true, + params: modalAppParams, + }, { name: 'suite-udev', pattern: '/udev',