Updated on 2026-08-14

This commit is contained in:
Tangem 2025-03-24 11:20:28 +03:00
parent 872df0ecb7
commit 9b4b339b8d
23 changed files with 278 additions and 81 deletions

View file

@ -139,6 +139,7 @@
<string name="common_fee_selector_option_market">Markt</string>
<string name="common_fee_selector_option_slow">Langsam</string>
<string name="common_fee_selector_title">Gebühren</string>
<string name="common_finish">Beenden</string>
<string name="common_generate_addresses">Adressen synchronisieren</string>
<string name="common_go_to_provider">Zum Anbieter gehen</string>
<string name="common_go_to_token">Zum Token</string>
@ -158,6 +159,7 @@
<string name="common_no_address">Keine Adresse</string>
<string name="common_now">Jetzt</string>
<string name="common_ok">OK</string>
<string name="common_open_in_browser">Im Browser öffnen</string>
<string name="common_origin_card">Hauptkarte oder Ring</string>
<string name="common_origin_ring">Primärring</string>
<string name="common_passphrase">Passphrase</string>
@ -181,6 +183,7 @@
<string name="common_send">Senden</string>
<string name="common_server_unavailable">Der Server ist nicht verfügbar. Bitte versuche es später erneut.</string>
<string name="common_share">Teilen</string>
<string name="common_share_link">Link teilen</string>
<string name="common_sign">Signieren</string>
<string name="common_sign_and_send">Signieren und senden</string>
<string name="common_stake">Staken</string>
@ -495,6 +498,10 @@
<string name="markets_tooltip_message">Rufe dies auf oder tippe auf die Suchleiste, um Token direkt vom Markt hinzuzufügen</string>
<string name="markets_tooltip_title">Token hinzufügen</string>
<string name="nfc_error_unavailable">NFC ist auf deinem Gerät nicht verfügbar</string>
<string name="nft_wallet_count">%1$d NFTs in der %2$d Sammlung</string>
<string name="nft_wallet_receive_nft">Tippe hier, um das erste NFT zu erhalten</string>
<string name="nft_wallet_title">NFT-Sammlungen</string>
<string name="nft_wallet_unable_to_load">Die Daten konnten nicht geladen werden</string>
<string name="onboarding_access_code_feature_1_description">Du musst einen einzigen Zugangscode einrichten, um alle deine Geräte zu schützen</string>
<string name="onboarding_access_code_feature_1_title">Schützen</string>
<string name="onboarding_access_code_feature_2_description">Du kannst später auf jeder Karte oder Ring einen individuellen Zugangscode einrichten</string>
@ -760,6 +767,8 @@
<string name="send_summary_transaction_description_suffix_including">inklusive einer Netzgebühr von %1$s</string>
<string name="send_transaction_success">Die Transaktion wurde erfolgreich signiert und an den Blockchain-Knoten gesendet. Die Walletbilanz wird aktualisiert</string>
<string name="send_tron_account_activation_error">%1$s ist ein Vermögenswert im Tron-Netzwerk. Um die Gebühr zu berechnen und eine Transaktion durchzuführen, musst du etwas Tron (TRX) auf deinem Konto einzahlen.</string>
<string name="send_validation_destination_tag_required_description">Um diese Transaktion für die angegebene Adresse abzuschließen, ist ein Ziel-Tag (Memo) erforderlich.</string>
<string name="send_validation_destination_tag_required_title">Ziel-Tag erforderlich</string>
<string name="sent_transaction_sent_title">Transaktion gesendet</string>
<string name="settings_card_settings_footer">Bereite das Scannen der Karte oder Ring vor, die du einrichten möchtest.</string>
<string name="settings_forget_wallet">Entferne diese Wallet</string>
@ -857,6 +866,7 @@
<string name="staking_rewards">Belohnungen</string>
<string name="staking_stake_locked">Stake gesperrt</string>
<string name="staking_stake_more">Mehr staken</string>
<string name="staking_stake_more_button_unavailability_reason">Beim Staking %1$s wird Dein gesamtes %2$s -Guthaben eingesetzt. Alle weiteren %2$s due Du in Deine Tangem-Wallet einzahlst, werden ebenfalls automatisch eingesetzt.</string>
<string name="staking_staked_amount">Gestakeder Betrag</string>
<string name="staking_summary_description_text">Du setzt %1$s ein und ethältst Deine Belohnung %2$s</string>
<string name="staking_tap_to_unlock">Zum Entsperren antippen</string>
@ -931,7 +941,7 @@
<string name="token_button_unavailability_reason_custom_token">Die Aktion ist für benutzerdefinierte Token nicht verfügbar.</string>
<string name="token_button_unavailability_reason_empty_balance_sell">Du hast kein Guthaben um dies zu Verkaufen. Lade dein Konto auf, um Geld von dort zu verkaufen.</string>
<string name="token_button_unavailability_reason_empty_balance_send">Du hast kein Guthaben zum Versenden. Lade dein Konto auf, um Geld von dort aus senden zu können.</string>
<string name="token_button_unavailability_reason_loading">Die Daten wurden noch nicht geladen. Dies kann einige Sekunden dauern. Bitte versuche es später erneut.</string>
<string name="token_button_unavailability_reason_loading">Die Daten werden gerade geladen. Dies kann einige Sekunden dauern. Bitte versuche es später noch einmal.</string>
<string name="token_button_unavailability_reason_not_exchangeable">Das Tauschen von %s wird von aktuellen Anbietern nicht unterstützt, aber wir arbeiten daran, weitere Optionen hinzuzufügen.</string>
<string name="token_button_unavailability_reason_out_of_date_balance">Der angezeigte Kontostand kann aufgrund der Zwischenspeicherung veraltet sein.</string>
<string name="token_button_unavailability_reason_pending_transaction_sell">Der Verkauf von Geldmitteln ist möglich, sobald die ausstehende(n) Transaktion(en) im %s -Netzwerk abgeschlossen ist/sind.</string>
@ -995,6 +1005,24 @@
<string name="user_wallet_list_rename_popup_title">Wallet umbenennen</string>
<string name="user_wallet_list_unlock_all">Alle freischalten</string>
<string name="user_wallet_list_unlock_all_with">Alle mit %s freischalten</string>
<plurals name="visa_limits_available_for_days_title">
<item quantity="one">Verfügbar für %d Tag</item>
<item quantity="other">Verfügbar für %d Tage</item>
</plurals>
<string name="visa_main_balances_and_limits">Guthaben und Limits</string>
<string name="visa_onboarding_approve_wallet_selector_notification_message">Bitte wähle die Wallet aus, mit der Du den Registrierungsprozess gestartet hast, um die Transaktion zur Erstellung Deines Kontos auf der Blockchain zu signieren</string>
<string name="visa_onboarding_close_alert_message">Möchtest Du den Vorgang wirklich beenden? Du kannst später dort fortfahren, wo Du aufgehört hast.</string>
<string name="visa_onboarding_in_progress_description">Das wird nicht lange dauern. Wir richten gerade Dein Konto ein.</string>
<string name="visa_onboarding_in_progress_issuer_description">Das wird nicht lange dauern. Wir schließen die Aktivierung ab.</string>
<string name="visa_onboarding_in_progress_title">Alles wird vorbereitet!</string>
<string name="visa_onboarding_pin_validation_error_message">Ungültige PIN: Sequenzen oder Wiederholungen vermeiden</string>
<string name="visa_onboarding_success_screen_description">Schon kann es losgehen!</string>
<string name="visa_onboarding_wallet_connect_description">Du kannst Deine Verbindung \n auf der Website des Drittanbieters \n herstellen und zurück zur Tangem-App gelangen</string>
<string name="visa_onboarding_wallet_connect_title">Zur Website gehen</string>
<string name="visa_onboarding_welcome_back_description">Fahren wir mit der Einrichtung Deines Kontos fort.</string>
<string name="visa_onboarding_welcome_back_title">Willkommen zurück!</string>
<string name="visa_onboarding_welcome_description">Folge den Schritten, um Dein Konto einzurichten.</string>
<string name="visa_onboarding_welcome_title">Willkommen!</string>
<string name="visa_unlock_notification_button">Freischalten</string>
<string name="visa_unlock_notification_subtitle">Scanne Deine Karte, um den Zugriff freizuschalten</string>
<string name="visa_unlock_notification_title">Benötigte Freischaltung</string>

View file

@ -1038,7 +1038,7 @@
<string name="warning_beacon_chain_retirement_title">BNB Beacon Chain va s\'arrêter de fonctionner</string>
<string name="warning_blocked_funds_for_fee_message">Veuillez déposer environ %1$s pour couvrir les frais de réseau</string>
<string name="warning_blocked_funds_for_fee_title">Fonds insuffisants pour couvrir les frais de réseau</string>
<string name="warning_button_could_be_better">Pas terrible</string>
<string name="warning_button_could_be_better">Peut mieux faire</string>
<string name="warning_button_like_it">J\'aime</string>
<string name="warning_button_ok">Ok, compris!</string>
<string name="warning_button_really_cool">Vraiment cool !</string>

View file

@ -136,6 +136,7 @@
<string name="common_fee_selector_option_market">マーケット</string>
<string name="common_fee_selector_option_slow">遅い</string>
<string name="common_fee_selector_title">速度と料金</string>
<string name="common_finish">終了</string>
<string name="common_generate_addresses">アドレスを同期する</string>
<string name="common_go_to_provider">プロバイダーへ移動</string>
<string name="common_go_to_token">トークンへ移動</string>
@ -155,6 +156,7 @@
<string name="common_no_address">アドレスがありません</string>
<string name="common_now"></string>
<string name="common_ok">わかりました</string>
<string name="common_open_in_browser">ブラウザで開く</string>
<string name="common_origin_card">プライマリーカード</string>
<string name="common_origin_ring">プライマリーリング</string>
<string name="common_passphrase">パスフレーズ</string>
@ -178,6 +180,7 @@
<string name="common_send">送る</string>
<string name="common_server_unavailable">サーバーが利用できません。しばらくしてからもう一度お試しください。</string>
<string name="common_share">共有</string>
<string name="common_share_link">リンクを共有</string>
<string name="common_sign">署名</string>
<string name="common_sign_and_send">署名して送信</string>
<string name="common_stake">ステーキング</string>
@ -489,6 +492,19 @@
<string name="markets_tooltip_message">これをドラッグするか、検索窓をタップして、マーケットから直接トークンを追加します</string>
<string name="markets_tooltip_title">トークンを追加</string>
<string name="nfc_error_unavailable">お使いのデバイスではNFCが使用できません</string>
<plurals name="nft_collections_count">
<item quantity="other">アイテム</item>
</plurals>
<string name="nft_collections_empty_description">ウォレットに送信されたNFTがここに表示されます。</string>
<string name="nft_collections_empty_title">コレクションはまだありません</string>
<string name="nft_collections_receive">NFTを受け取る</string>
<string name="nft_collections_title">NFTコレクション</string>
<string name="nft_collections_warning_subtitle">一部のデータが読み込まれない場合があります</string>
<string name="nft_collections_warning_title">一時的な読み込みの問題</string>
<string name="nft_wallet_count">%1$dコレクションの%2$dNFT</string>
<string name="nft_wallet_receive_nft">ここをタップして最初のNFTを受け取ります</string>
<string name="nft_wallet_title">NFTコレクション</string>
<string name="nft_wallet_unable_to_load">データを読み込めません</string>
<string name="onboarding_access_code_feature_1_description">すべてのデバイスを保護するには、単一のアクセスコードを設定してください。</string>
<string name="onboarding_access_code_feature_1_title">保護する</string>
<string name="onboarding_access_code_feature_2_description">後で各カードおよびリングに個別のアクセスコードを設定できます。</string>
@ -750,6 +766,8 @@
<string name="send_summary_transaction_description_suffix_including">ネットワーク手数料%1$sを含む</string>
<string name="send_transaction_success">取引は正常に署名され、ブロックチェーンノードに送信されました。ウォレットの残高はしばらくして更新されます。</string>
<string name="send_tron_account_activation_error">%1$sはTronネットワークのアセットです。手数料を計算して取引を行うには、アカウントにTronTRXを入金する必要があります。</string>
<string name="send_validation_destination_tag_required_description">指定されたアドレスへの取引を完了するには、宛先タグ(メモ)が必要です。</string>
<string name="send_validation_destination_tag_required_title">宛先タグが必要です</string>
<string name="sent_transaction_sent_title">取引が送信されました</string>
<string name="settings_card_settings_footer">設定したいカードまたはリングをスキャンするために準備してください。</string>
<string name="settings_forget_wallet">ウォレット削除</string>
@ -847,6 +865,7 @@
<string name="staking_rewards">報酬</string>
<string name="staking_stake_locked">ステーキングはロックされています</string>
<string name="staking_stake_more">もっとステーキングする</string>
<string name="staking_stake_more_button_unavailability_reason">%1$sをステーキングすると、 %2$s残高全体がステーキングされます。Tangemウォレットに入金した追加の%2$sも、自動的にステーキングされます。</string>
<string name="staking_staked_amount">ステーキング中の金額</string>
<string name="staking_summary_description_text">%1$sをステーキングし、報酬%2$sを受け取ります</string>
<string name="staking_tap_to_unlock">タップしてロック解除</string>
@ -985,6 +1004,20 @@
<string name="user_wallet_list_rename_popup_title">ウォレット名の変更</string>
<string name="user_wallet_list_unlock_all">すべてのロックを解除</string>
<string name="user_wallet_list_unlock_all_with">%sですべてをロック解除</string>
<plurals name="visa_limits_available_for_days_title">
<item quantity="other">%d日間利用可能</item>
</plurals>
<string name="visa_main_balances_and_limits">残高と限度額</string>
<string name="visa_onboarding_close_alert_message">本当に終了してもよろしいですか?中断したところから後で続行できます。</string>
<string name="visa_onboarding_in_progress_description">長くはかかりません。アカウントを設定しています。</string>
<string name="visa_onboarding_in_progress_issuer_description">長くはかかりません。アクティベーションを完了しています。</string>
<string name="visa_onboarding_in_progress_title">準備完了です!</string>
<string name="visa_onboarding_pin_validation_error_message">無効な暗証番号:連続や繰り返しを避けてください</string>
<string name="visa_onboarding_wallet_connect_title">ウェブサイトに移動</string>
<string name="visa_onboarding_welcome_back_description">アカウントの設定を続けましょう。</string>
<string name="visa_onboarding_welcome_back_title">お帰りなさい!</string>
<string name="visa_onboarding_welcome_description">手順に従ってアカウントを設定してください。</string>
<string name="visa_onboarding_welcome_title">ようこそ!</string>
<string name="visa_unlock_notification_button">ロック解除</string>
<string name="visa_unlock_notification_subtitle">カードをスキャンしてアクセスロックを解除する</string>
<string name="visa_unlock_notification_title">ロック解除が必要</string>

View file

@ -139,6 +139,7 @@
<string name="common_fee_selector_option_market">Market</string>
<string name="common_fee_selector_option_slow">Slow</string>
<string name="common_fee_selector_title">Speed and fee</string>
<string name="common_finish">Finish</string>
<string name="common_generate_addresses">Synchronize addresses</string>
<string name="common_go_to_provider">Go to provider</string>
<string name="common_go_to_token">Go to token</string>
@ -158,6 +159,7 @@
<string name="common_no_address">No address</string>
<string name="common_now">Now</string>
<string name="common_ok">OK</string>
<string name="common_open_in_browser">Open in Browser</string>
<string name="common_origin_card">Primary card</string>
<string name="common_origin_ring">Primary ring</string>
<string name="common_passphrase">Passphrase</string>
@ -181,6 +183,7 @@
<string name="common_send">Send</string>
<string name="common_server_unavailable">The server is not available, please try again later</string>
<string name="common_share">Share</string>
<string name="common_share_link">Share Link</string>
<string name="common_sign">Sign</string>
<string name="common_sign_and_send">Sign and send</string>
<string name="common_stake">Stake</string>
@ -190,6 +193,7 @@
<string name="common_success">Success</string>
<string name="common_support">Support</string>
<string name="common_swap">Swap</string>
<string name="common_tangem_wallet">Tangem Wallet</string>
<string name="common_terms_and_conditions">terms and conditions</string>
<string name="common_terms_of_use">Terms of Use</string>
<string name="common_today">Today</string>
@ -495,9 +499,19 @@
<string name="markets_tooltip_message">Pull this up or tap the search bar to add tokens directly from the market</string>
<string name="markets_tooltip_title">Add tokens</string>
<string name="nfc_error_unavailable">NFC is not available on your device</string>
<string name="nft_wallet_title">NFT collections</string>
<string name="nft_wallet_receive_nft">Tap here to receive first NFT</string>
<plurals name="nft_collections_count">
<item quantity="one">%d item</item>
<item quantity="other">%d items</item>
</plurals>
<string name="nft_collections_empty_description">NFTs sent to your wallet address will show up here.</string>
<string name="nft_collections_empty_title">No collections, yet</string>
<string name="nft_collections_receive">Receive NFT</string>
<string name="nft_collections_title">NFT collections</string>
<string name="nft_collections_warning_subtitle">Some data may not load</string>
<string name="nft_collections_warning_title">Temporary loading problems</string>
<string name="nft_wallet_count">%1$d NFTs in %2$d collection</string>
<string name="nft_wallet_receive_nft">Tap here to receive first NFT</string>
<string name="nft_wallet_title">NFT collections</string>
<string name="nft_wallet_unable_to_load">Unable to load the data</string>
<string name="onboarding_access_code_feature_1_description">Set up a single access code to protect all your devices.</string>
<string name="onboarding_access_code_feature_1_title">Protect</string>
@ -764,6 +778,8 @@
<string name="send_summary_transaction_description_suffix_including">including a network fee of %1$s</string>
<string name="send_transaction_success">Transaction has been successfully signed and sent to the blockchain node. Wallet balance will be updated in a while</string>
<string name="send_tron_account_activation_error">%1$s is an asset in the Tron network. To calculate the fee and make a transaction you need to deposit some Tron (TRX) in your account.</string>
<string name="send_validation_destination_tag_required_description">A destination tag (memo) is required to complete this transaction for the specified address.</string>
<string name="send_validation_destination_tag_required_title">Destination Tag Required</string>
<string name="sent_transaction_sent_title">Transaction sent</string>
<string name="settings_card_settings_footer">Prepare to scan card or ring you want to set up.</string>
<string name="settings_forget_wallet">Forget wallet</string>
@ -1000,6 +1016,69 @@
<string name="user_wallet_list_rename_popup_title">Rename wallet</string>
<string name="user_wallet_list_unlock_all">Unlock all</string>
<string name="user_wallet_list_unlock_all_with">Unlock all with %s</string>
<string name="visa_balance_limits_details_aml_verified">AML verifired</string>
<string name="visa_balance_limits_details_available">Available</string>
<string name="visa_balance_limits_details_blocked">Blocked</string>
<string name="visa_balance_limits_details_debt">Debt</string>
<string name="visa_balance_limits_details_limits">Limits</string>
<string name="visa_balance_limits_details_no_otp_limit">Other (no-otp)</string>
<string name="visa_balance_limits_details_single_transaction">Single transaction</string>
<string name="visa_balance_limits_details_total">Total</string>
<plurals name="visa_limits_available_for_days_title">
<item quantity="one">available for %d day</item>
<item quantity="other">available for %d days</item>
</plurals>
<string name="visa_main_available_balance_alert_message">Available balance is actual funds available, considering pending transactions, blocked amounts, and debit balance to prevent overdrafts.</string>
<string name="visa_main_available_till_date">Available till %1$s</string>
<string name="visa_main_balances_and_limits">Balances &amp; Limits</string>
<string name="visa_main_button_alert_missing_payment_account_info_message">Missing Payment account information. Please contact support</string>
<string name="visa_main_button_alert_missing_token_info">Unable to load information about token</string>
<string name="visa_main_button_alert_still_loading">Information is still loading, please wait</string>
<string name="visa_main_limits_alert_description_message">Limits are needed to control costs, improve security, manage risk. You can spend %1$s during the period for card payments in shops and %2$s for other transactions, e.g. subscriptions or debts.</string>
<string name="visa_onboarding_access_code_description">The access code will be used manage your payment account and protect it from unauthorized access</string>
<string name="visa_onboarding_access_code_navigation_title">Access Code</string>
<string name="visa_onboarding_account_activation_navigation_title">Account activation</string>
<string name="visa_onboarding_approve_wallet_selector_notification_message">Please choose the wallet you started the registration process with to sign the transaction for creating your account on the Blockchain</string>
<string name="visa_onboarding_cancel_activation">Cancel Activation</string>
<string name="visa_onboarding_close_alert_message">Are you sure you want to exit? You can continue later from where you left off.</string>
<string name="visa_onboarding_in_progress_description">This won\'t take long. We\'re setting up your account.</string>
<string name="visa_onboarding_in_progress_issuer_description">This wont take long. Were completing the activation.</string>
<string name="visa_onboarding_in_progress_title">Getting everything ready!</string>
<string name="visa_onboarding_other_wallet">Other wallet</string>
<string name="visa_onboarding_pin_code_description">Set up a 4-digit code. It will be used for payments.</string>
<string name="visa_onboarding_pin_code_navigation_title">PIN code</string>
<string name="visa_onboarding_pin_code_title">Create PIN Code</string>
<string name="visa_onboarding_pin_validation_error_message">Invalid PIN: avoid sequences or repeats</string>
<string name="visa_onboarding_success_screen_description">You\'re good to go!</string>
<string name="visa_onboarding_tangem_approve_description">Prepare the Tangem card and tap to approve</string>
<string name="visa_onboarding_tangem_approve_title">Prepare Tangem Wallet</string>
<string name="visa_onboarding_wallet_connect_description">You will be able to complete your connection \n on the third-party web-site \n and back to the Tangem app</string>
<string name="visa_onboarding_wallet_connect_title">Go to Website</string>
<string name="visa_onboarding_wallet_connection_navigation_title">Wallet connection</string>
<string name="visa_onboarding_wallet_list_header">Choose wallet</string>
<string name="visa_onboarding_welcome_back_button_title">Continue Activation</string>
<string name="visa_onboarding_welcome_back_description">Let\'s continue setting up your account.</string>
<string name="visa_onboarding_welcome_back_title">Welcome back!</string>
<string name="visa_onboarding_welcome_button_title">Start Activation</string>
<string name="visa_onboarding_welcome_description">Follow the steps to set up your account.</string>
<string name="visa_onboarding_welcome_title">Welcome!</string>
<string name="visa_transaction_details_blockchain_amount">Blockchain amount</string>
<string name="visa_transaction_details_currency_code">Currency code</string>
<string name="visa_transaction_details_date">Date</string>
<string name="visa_transaction_details_error_code">Error code</string>
<string name="visa_transaction_details_header">Transaction details</string>
<string name="visa_transaction_details_merchant_category_code">Merchant category code</string>
<string name="visa_transaction_details_merchant_city">Merchant city</string>
<string name="visa_transaction_details_merchant_country_code">Merchant country code</string>
<string name="visa_transaction_details_merchant_name">Merchant name</string>
<string name="visa_transaction_details_request_id">Request ID</string>
<string name="visa_transaction_details_status">Status</string>
<string name="visa_transaction_details_title">Transaction</string>
<string name="visa_transaction_details_transaction_amount">Transaction amount</string>
<string name="visa_transaction_details_transaction_hash">Transaction hash</string>
<string name="visa_transaction_details_transaction_request">Transaction request</string>
<string name="visa_transaction_details_transaction_status">Transaction status</string>
<string name="visa_transaction_details_type">Type</string>
<string name="visa_unlock_notification_button">Unlock</string>
<string name="visa_unlock_notification_subtitle">Scan your card to unlock access</string>
<string name="visa_unlock_notification_title">Needed unlock</string>

View file

@ -5,7 +5,14 @@ import com.tangem.core.ui.decompose.ComposableContentComponent
interface OnboardingDoneComponent : ComposableContentComponent {
data class Params(val onDone: () -> Unit)
data class Params(
val mode: Mode,
val onDone: () -> Unit,
)
enum class Mode {
WalletCreated, GoodToGo
}
interface Factory : ComponentFactory<Params, OnboardingDoneComponent>
}

View file

@ -1,7 +1,6 @@
package com.tangem.features.onboarding.v2.done.impl
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import com.tangem.core.decompose.context.AppComponentContext
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
@ -18,7 +17,8 @@ internal class DefaultOnboardingDoneComponent @AssistedInject constructor(
@Composable
override fun Content(modifier: Modifier) {
OnboardingDone(
onContinueClick = remember(this) { params.onDone },
mode = params.mode,
onContinueClick = params.onDone,
)
}

View file

@ -20,10 +20,16 @@ import com.tangem.core.ui.components.*
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
import com.tangem.features.onboarding.v2.impl.R
@Suppress("LongMethod")
@Composable
internal fun OnboardingDone(onContinueClick: () -> Unit, modifier: Modifier = Modifier) {
internal fun OnboardingDone(
mode: OnboardingDoneComponent.Mode,
onContinueClick: () -> Unit,
modifier: Modifier = Modifier,
) {
val composition by rememberLottieComposition(spec = LottieCompositionSpec.RawRes(R.raw.anim_confetti))
val progress by animateLottieCompositionAsState(composition)
var showConfetti by remember { mutableStateOf(false) }
@ -57,7 +63,12 @@ internal fun OnboardingDone(onContinueClick: () -> Unit, modifier: Modifier = Mo
SpacerH12()
Text(
modifier = Modifier.padding(horizontal = 32.dp),
text = stringResourceSafe(R.string.onboarding_subtitle_success_tangem_wallet_onboarding),
text = when (mode) {
OnboardingDoneComponent.Mode.WalletCreated ->
stringResourceSafe(R.string.onboarding_subtitle_success_tangem_wallet_onboarding)
OnboardingDoneComponent.Mode.GoodToGo ->
stringResourceSafe(R.string.visa_onboarding_success_screen_description)
},
style = TangemTheme.typography.body1,
color = TangemTheme.colors.text.secondary,
textAlign = TextAlign.Center,
@ -100,6 +111,9 @@ internal fun OnboardingDone(onContinueClick: () -> Unit, modifier: Modifier = Mo
@Composable
private fun Preview() {
TangemThemePreview {
OnboardingDone(onContinueClick = {})
OnboardingDone(
mode = OnboardingDoneComponent.Mode.WalletCreated,
onContinueClick = {},
)
}
}

View file

@ -20,6 +20,7 @@ import com.tangem.features.biometry.AskBiometryComponent
import com.tangem.features.biometry.BiometryFeatureToggles
import com.tangem.features.onboarding.v2.TitleProvider
import com.tangem.features.onboarding.v2.common.ui.CantLeaveBackupDialog
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
import com.tangem.features.onboarding.v2.entry.OnboardingEntryComponent
import com.tangem.features.onboarding.v2.entry.impl.analytics.OnboardingEntryEvent
import com.tangem.features.onboarding.v2.entry.impl.routing.OnboardingRoute
@ -105,7 +106,12 @@ internal class OnboardingEntryModel @Inject constructor(
private fun onMultiWalletOnboardingDone(userWallet: UserWallet) {
when {
params.multiWalletMode == OnboardingEntryComponent.MultiWalletMode.AddBackup -> {
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
stackNavigation.replaceAll(
OnboardingRoute.Done(
mode = OnboardingDoneComponent.Mode.WalletCreated,
onDone = ::navigateToWalletScreen,
),
)
}
userWallet.scanResponse.cardTypesResolver.isMultiwalletAllowed() -> {
stackNavigation.replaceAll(OnboardingRoute.ManageTokens(userWallet))
@ -117,34 +123,58 @@ internal class OnboardingEntryModel @Inject constructor(
}
private fun onVisaOnboardingDone() {
navigateToFinalScreenFlow()
navigateToFinalScreenFlow(doneMode = OnboardingDoneComponent.Mode.GoodToGo)
}
private fun navigateToFinalScreenFlow() {
private fun navigateToFinalScreenFlow(
doneMode: OnboardingDoneComponent.Mode = OnboardingDoneComponent.Mode.WalletCreated,
) {
if (askBiometryFeatureToggles.isAskForBiometryEnabled) {
modelScope.launch {
if (tangemSdkManager.checkCanUseBiometry() && settingsRepository.shouldShowSaveUserWalletScreen()) {
stackNavigation.replaceAll(
OnboardingRoute.AskBiometry(modelCallbacks = AskBiometryModelCallbacks()),
OnboardingRoute.AskBiometry(modelCallbacks = AskBiometryModelCallbacks(doneMode)),
)
} else {
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
stackNavigation.replaceAll(
OnboardingRoute.Done(
mode = doneMode,
onDone = ::navigateToWalletScreen,
),
)
}
}
} else {
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
stackNavigation.replaceAll(
OnboardingRoute.Done(
mode = doneMode,
onDone = ::navigateToWalletScreen,
),
)
}
}
inner class AskBiometryModelCallbacks : AskBiometryComponent.ModelCallbacks {
inner class AskBiometryModelCallbacks(
private val doneMode: OnboardingDoneComponent.Mode,
) : AskBiometryComponent.ModelCallbacks {
override fun onAllowed() {
analyticsEventHandler.send(OnboardingEntryEvent.Biometric(OnboardingEntryEvent.Biometric.State.On))
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
stackNavigation.replaceAll(
OnboardingRoute.Done(
mode = doneMode,
onDone = ::navigateToWalletScreen,
),
)
}
override fun onDenied() {
analyticsEventHandler.send(OnboardingEntryEvent.Biometric(OnboardingEntryEvent.Biometric.State.Off))
stackNavigation.replaceAll(OnboardingRoute.Done(onDone = ::navigateToWalletScreen))
stackNavigation.replaceAll(
OnboardingRoute.Done(
mode = doneMode,
onDone = ::navigateToWalletScreen,
),
)
}
}

View file

@ -48,6 +48,7 @@ internal class OnboardingChildFactory @Inject constructor(
is OnboardingRoute.Done -> onboardingDoneComponentFactory.create(
context = childContext,
params = OnboardingDoneComponent.Params(
mode = route.mode,
onDone = route.onDone,
),
)

View file

@ -5,6 +5,7 @@ import com.tangem.domain.models.scan.ScanResponse
import com.tangem.domain.wallets.models.UserWallet
import com.tangem.features.biometry.AskBiometryComponent
import com.tangem.features.onboarding.v2.TitleProvider
import com.tangem.features.onboarding.v2.done.api.OnboardingDoneComponent
import com.tangem.features.onboarding.v2.multiwallet.api.OnboardingMultiWalletComponent
sealed class OnboardingRoute : Route {
@ -40,6 +41,7 @@ sealed class OnboardingRoute : Route {
) : OnboardingRoute()
data class Done(
val mode: OnboardingDoneComponent.Mode,
val onDone: () -> Unit,
) : OnboardingRoute()
}

View file

@ -161,7 +161,7 @@ internal class DefaultOnboardingVisaComponent @AssistedInject constructor(
params = OnboardingVisaOtherWalletComponent.Params(
childParams = childParams,
onDone = {
model.stackNavigation.push(OnboardingVisaRoute.PinCode(activationOrderInfo = it))
model.stackNavigation.pushNew(OnboardingVisaRoute.PinCode(activationOrderInfo = it))
},
),
)
@ -174,7 +174,7 @@ internal class DefaultOnboardingVisaComponent @AssistedInject constructor(
params = OnboardingVisaPinCodeComponent.Params(
childParams = childParams,
onDone = {
model.stackNavigation.push(
model.stackNavigation.pushNew(
OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.PinCode),
)
},
@ -190,7 +190,7 @@ internal class DefaultOnboardingVisaComponent @AssistedInject constructor(
params = OnboardingVisaApproveComponent.Params(
childParams = childParams,
onDone = {
model.stackNavigation.push(
model.stackNavigation.pushNew(
OnboardingVisaRoute.InProgress(from = OnboardingVisaRoute.InProgress.From.Approve),
)
},

View file

@ -23,6 +23,7 @@ import com.tangem.core.ui.components.SpacerH
import com.tangem.core.ui.components.SpacerH16
import com.tangem.core.ui.components.SpacerH32
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemAnimations
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
@ -87,9 +88,9 @@ private fun Content(
modifier = Modifier
.padding(horizontal = 32.dp),
text = if (reEnterAccessCodeState) {
"Re-enter your access code" // TODO
stringResourceSafe(R.string.onboarding_access_code_repeat_code_title)
} else {
"Create access code" // TODO
stringResourceSafe(R.string.onboarding_access_code_intro_title)
},
style = TangemTheme.typography.h2,
color = TangemTheme.colors.text.primary1,
@ -98,11 +99,10 @@ private fun Content(
SpacerH16()
// TODO
Text(
modifier = Modifier
.padding(horizontal = 32.dp),
text = "The access code will be used manage your payment account and protect it from unauthorized access",
text = stringResourceSafe(R.string.visa_onboarding_access_code_description),
style = TangemTheme.typography.body1,
color = TangemTheme.colors.text.secondary,
textAlign = TextAlign.Center,

View file

@ -14,7 +14,8 @@ import androidx.compose.ui.unit.dp
import com.tangem.common.ui.navigationButtons.NavigationButton
import com.tangem.common.ui.navigationButtons.NavigationPrimaryButton
import com.tangem.core.ui.components.SpacerH
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.onboarding.v2.impl.R
@ -43,7 +44,7 @@ internal fun OnboardingVisaApprove(state: OnboardingVisaApproveUM, modifier: Mod
SpacerH(86.dp)
Text(
text = "Prepare Tangem Wallet",
text = stringResourceSafe(R.string.visa_onboarding_tangem_approve_title),
style = TangemTheme.typography.h2,
color = TangemTheme.colors.text.primary1,
textAlign = TextAlign.Center,
@ -52,7 +53,7 @@ internal fun OnboardingVisaApprove(state: OnboardingVisaApproveUM, modifier: Mod
SpacerH(12.dp)
Text(
text = "Prepare the Tangem card\nand tap to approve",
text = stringResourceSafe(R.string.visa_onboarding_tangem_approve_description),
style = TangemTheme.typography.body1,
color = TangemTheme.colors.text.secondary,
textAlign = TextAlign.Center,
@ -65,7 +66,7 @@ internal fun OnboardingVisaApprove(state: OnboardingVisaApproveUM, modifier: Mod
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
.fillMaxWidth(),
primaryButton = NavigationButton(
textReference = TextReference.Str("Approve"),
textReference = resourceReference(R.string.common_approve),
iconRes = R.drawable.ic_tangem_24,
isIconVisible = true,
showProgress = state.approveButtonLoading,

View file

@ -3,7 +3,7 @@ package com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.model
import androidx.compose.runtime.Stable
import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.features.onboarding.v2.impl.R
import com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.OnboardingVisaChooseWalletComponent.Params.Event
import com.tangem.features.onboarding.v2.visa.impl.child.choosewallet.ui.state.OnboardingVisaChooseWalletUM
@ -32,7 +32,7 @@ internal class OnboardingVisaChooseWalletModel @Inject constructor(
val selectedOption = SelectableChainRowUM(
event = Event.TangemWallet,
icon = R.drawable.ic_tangem_24,
text = TextReference.Str("Tangem Wallet"),
text = resourceReference(R.string.common_tangem_wallet),
)
return OnboardingVisaChooseWalletUM(
@ -41,7 +41,7 @@ internal class OnboardingVisaChooseWalletModel @Inject constructor(
SelectableChainRowUM(
event = Event.OtherWallet,
icon = R.drawable.ic_wallet_filled_24,
text = TextReference.Str("Other Wallet"),
text = resourceReference(R.string.visa_onboarding_other_wallet),
),
),
selectedOption = selectedOption,

View file

@ -21,6 +21,8 @@ import com.tangem.core.ui.components.rows.RowContentContainer
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.outsetBorder
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.onboarding.v2.impl.R
@ -45,10 +47,7 @@ internal fun OnboardingVisaChooseWallet(state: OnboardingVisaChooseWalletUM, mod
) {
Notification(
config = NotificationConfig(
subtitle = TextReference.Str(
"Please choose the wallet you started the registration" +
" process with to sign the transaction for creating your account on the Blockchain.",
),
subtitle = resourceReference(R.string.visa_onboarding_approve_wallet_selector_notification_message),
iconResId = R.drawable.ic_alert_circle_24,
),
iconTint = TangemTheme.colors.icon.accent,
@ -62,7 +61,7 @@ internal fun OnboardingVisaChooseWallet(state: OnboardingVisaChooseWalletUM, mod
start = 12.dp,
end = 12.dp,
),
text = "Choose wallet",
text = stringResourceSafe(R.string.visa_onboarding_wallet_list_header),
style = TangemTheme.typography.subtitle2,
color = TangemTheme.colors.text.tertiary,
)
@ -79,7 +78,7 @@ internal fun OnboardingVisaChooseWallet(state: OnboardingVisaChooseWalletUM, mod
.imePadding()
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
.fillMaxWidth(),
text = "Continue",
text = stringResourceSafe(R.string.common_continue),
onClick = state.onContinueClick,
)
}

View file

@ -68,10 +68,10 @@ internal class OnboardingVisaOtherWalletModel @Inject constructor(
}
private fun onShareClicked() {
shareManager.shareText("https://tangem.com/")
shareManager.shareText("https://tangem.com/") // TODO
}
private fun onOpenInBrowserClicked() {
urlOpener.openUrl("https://tangem.com/")
urlOpener.openUrl("https://tangem.com/") // TODO
}
}

View file

@ -16,6 +16,7 @@ import androidx.compose.ui.unit.dp
import com.tangem.core.ui.components.PrimaryButton
import com.tangem.core.ui.components.SecondaryButton
import com.tangem.core.ui.components.SpacerH12
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.onboarding.v2.impl.R
@ -44,7 +45,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
SpacerH12()
Text(
text = "Go to Website",
text = stringResourceSafe(R.string.visa_onboarding_wallet_connect_title),
style = TangemTheme.typography.h2,
color = TangemTheme.colors.text.primary1,
textAlign = TextAlign.Center,
@ -53,9 +54,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
SpacerH12()
Text(
text = "You will be able to complete your connection \n" +
"on the third-party web-site \n" +
"and back to the Tangem app",
text = stringResourceSafe(R.string.visa_onboarding_wallet_connect_description),
style = TangemTheme.typography.body1,
color = TangemTheme.colors.text.secondary,
textAlign = TextAlign.Center,
@ -68,7 +67,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
modifier = Modifier
.padding(horizontal = 16.dp)
.fillMaxWidth(),
text = "Open in Browser",
text = stringResourceSafe(R.string.common_open_in_browser),
onClick = state.onOpenInBrowserClick,
)
@ -78,7 +77,7 @@ internal fun OnboardingVisaOtherWallet(state: OnboardingVisaOtherWalletUM, modif
modifier = Modifier
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
.fillMaxWidth(),
text = "Share Link",
text = stringResourceSafe(R.string.common_share_link),
onClick = state.onOpenInBrowserClick,
)
}

View file

@ -5,7 +5,7 @@ import com.tangem.common.extensions.toHexString
import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.datasource.local.visa.VisaAuthTokenStorage
import com.tangem.domain.models.scan.ScanResponse
import com.tangem.domain.visa.SetVisaPinCodeUseCase
@ -14,6 +14,7 @@ import com.tangem.domain.visa.model.VisaCardId
import com.tangem.domain.wallets.builder.UserWalletBuilder
import com.tangem.domain.wallets.legacy.UserWalletsListManager
import com.tangem.domain.wallets.models.UserWallet
import com.tangem.features.onboarding.v2.impl.R
import com.tangem.features.onboarding.v2.visa.impl.child.pincode.OnboardingVisaPinCodeComponent
import com.tangem.features.onboarding.v2.visa.impl.child.pincode.ui.state.OnboardingVisaPinCodeUM
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
@ -64,7 +65,11 @@ internal class OnboardingVisaPinCodeModel @Inject constructor(
it.copy(
pinCode = pin,
submitButtonEnabled = PinCodeValidation.validate(pin),
error = if (isError) stringReference("Invalid PIN: avoid sequences or repeats") else null,
error = if (isError) {
resourceReference(R.string.visa_onboarding_pin_validation_error_message)
} else {
null
},
)
}
}
@ -117,8 +122,4 @@ internal class OnboardingVisaPinCodeModel @Inject constructor(
lazyMessage = { "User wallet not created" },
)
}
private companion object {
const val PIN_CODE_LENGTH = 4
}
}

View file

@ -33,11 +33,13 @@ import com.tangem.common.ui.navigationButtons.NavigationPrimaryButton
import com.tangem.core.ui.components.SpacerH
import com.tangem.core.ui.components.SpacerH16
import com.tangem.core.ui.components.SpacerH4
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.onboarding.v2.impl.R
import com.tangem.features.onboarding.v2.visa.impl.child.pincode.ui.state.OnboardingVisaPinCodeUM
import kotlinx.coroutines.delay
@ -57,7 +59,7 @@ internal fun OnboardingVisaPinCode(state: OnboardingVisaPinCodeUM, modifier: Mod
horizontalAlignment = Alignment.CenterHorizontally,
) {
Text(
text = "Create\nPIN Code",
text = stringResourceSafe(R.string.visa_onboarding_pin_code_title),
style = TangemTheme.typography.h2,
color = TangemTheme.colors.text.primary1,
textAlign = TextAlign.Center,
@ -66,7 +68,7 @@ internal fun OnboardingVisaPinCode(state: OnboardingVisaPinCodeUM, modifier: Mod
SpacerH16()
Text(
text = "Set up a 4-digit code.\nIt will be used for payments.",
text = stringResourceSafe(R.string.visa_onboarding_pin_code_description),
style = TangemTheme.typography.body1,
color = TangemTheme.colors.text.secondary,
textAlign = TextAlign.Center,
@ -83,7 +85,7 @@ internal fun OnboardingVisaPinCode(state: OnboardingVisaPinCodeUM, modifier: Mod
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
.fillMaxWidth(),
primaryButton = NavigationButton(
textReference = TextReference.Str("Submit"),
textReference = resourceReference(R.string.common_submit),
onClick = state.onSubmitClick,
showProgress = state.submitButtonLoading,
isEnabled = state.submitButtonEnabled,

View file

@ -16,6 +16,7 @@ import com.tangem.core.ui.components.PrimaryButton
import com.tangem.core.ui.components.PrimaryButtonIconEnd
import com.tangem.core.ui.components.SpacerH
import com.tangem.core.ui.components.SpacerH12
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.onboarding.v2.impl.R
@ -47,8 +48,10 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
Text(
text = when (state.mode) {
OnboardingVisaWelcomeUM.Mode.Hello -> "Hello, ${state.userName}!"
OnboardingVisaWelcomeUM.Mode.WelcomeBack -> "Welcome back, ${state.userName}!"
OnboardingVisaWelcomeUM.Mode.Hello ->
stringResourceSafe(R.string.visa_onboarding_welcome_title)
OnboardingVisaWelcomeUM.Mode.WelcomeBack ->
stringResourceSafe(R.string.visa_onboarding_welcome_back_title)
},
style = TangemTheme.typography.h2,
color = TangemTheme.colors.text.primary1,
@ -58,8 +61,10 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
Text(
text = when (state.mode) {
OnboardingVisaWelcomeUM.Mode.Hello -> "bla bla bla //TODO"
OnboardingVisaWelcomeUM.Mode.WelcomeBack -> "bla bla bla? //TODO"
OnboardingVisaWelcomeUM.Mode.Hello ->
stringResourceSafe(R.string.visa_onboarding_welcome_description)
OnboardingVisaWelcomeUM.Mode.WelcomeBack ->
stringResourceSafe(R.string.visa_onboarding_welcome_back_description)
},
style = TangemTheme.typography.body1,
color = TangemTheme.colors.text.secondary,
@ -72,7 +77,7 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
modifier = Modifier
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
.fillMaxWidth(),
text = "Start Activation",
text = stringResourceSafe(R.string.visa_onboarding_welcome_button_title),
onClick = state.onContinueClick,
)
}
@ -81,7 +86,7 @@ internal fun OnboardingVisaWelcome(state: OnboardingVisaWelcomeUM, modifier: Mod
modifier = Modifier
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
.fillMaxWidth(),
text = "Continue Activation",
text = stringResourceSafe(R.string.visa_onboarding_welcome_back_button_title),
showProgress = state.continueButtonLoading,
iconResId = R.drawable.ic_tangem_24,
onClick = state.onContinueClick,

View file

@ -2,7 +2,6 @@ package com.tangem.features.onboarding.v2.visa.impl.child.welcome.ui.state
internal data class OnboardingVisaWelcomeUM(
val mode: Mode = Mode.Hello,
val userName: String = "",
val continueButtonLoading: Boolean = false,
val onContinueClick: () -> Unit = {},
) {

View file

@ -1,16 +1,22 @@
package com.tangem.features.onboarding.v2.visa.impl.route
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.features.onboarding.v2.impl.R
// TODO add translations [REDACTED_TASK_KEY]
internal fun OnboardingVisaRoute.screenTitle(): TextReference = when (this) {
OnboardingVisaRoute.AccessCode -> TextReference.Str("Access code")
is OnboardingVisaRoute.ChooseWallet -> TextReference.Str("Account activation")
is OnboardingVisaRoute.InProgress -> TextReference.Str("In progress")
is OnboardingVisaRoute.OtherWalletApproveOption -> TextReference.Str("Wallet connection")
is OnboardingVisaRoute.PinCode -> TextReference.Str("PIN code")
is OnboardingVisaRoute.TangemWalletApproveOption -> TextReference.Str("Wallet connection")
OnboardingVisaRoute.AccessCode ->
resourceReference(R.string.visa_onboarding_access_code_navigation_title)
is OnboardingVisaRoute.ChooseWallet ->
resourceReference(R.string.visa_onboarding_account_activation_navigation_title)
is OnboardingVisaRoute.InProgress ->
resourceReference(R.string.common_in_progress)
is OnboardingVisaRoute.OtherWalletApproveOption,
is OnboardingVisaRoute.TangemWalletApproveOption,
-> resourceReference(R.string.visa_onboarding_wallet_connection_navigation_title)
is OnboardingVisaRoute.PinCode ->
resourceReference(R.string.visa_onboarding_pin_code_navigation_title)
is OnboardingVisaRoute.Welcome,
is OnboardingVisaRoute.WelcomeBack,
-> TextReference.Str("Getting started")
-> resourceReference(R.string.onboarding_getting_started)
}

View file

@ -1,9 +0,0 @@
package com.tangem.features.onboarding.v2.visa.impl.ui
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@Composable
internal fun OnboardingVisa(modifier: Modifier = Modifier, childContent: @Composable (Modifier) -> Unit) {
childContent(modifier)
}