Skip to content

Commit

Permalink
[ABW-3637] Do not preselect account on Transfer + AppTextField fix (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
matiasbzurovski committed Jul 22, 2024
1 parent 41e5c33 commit 6416ef6
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public struct AppTextField<FocusValue: Hashable, Accessory: View, InnerAccessory
VStack(alignment: .leading, spacing: 0) {
Text(primaryHeading.text)
.textStyle(primaryHeading.isProminent ? .body1HighImportance : .body2Regular)
.foregroundColor(primaryHeading.isProminent && isEnabled ? accentColor(isFocused: false) : .app.gray2)
.foregroundColor(primaryHeading.isProminent && isEnabled ? accentColor(isFocused: true) : .app.gray2)
.multilineTextAlignment(.leading)
if let subHeading {
Text(subHeading)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ extension TransferAccountList {
let chooseAccount: ChooseReceivingAccount.State = .init(
networkID: state.fromAccount.networkID,
chooseAccounts: .init(
selectionRequirement: .exactly(1),
context: .assetTransfer,
filteredAccounts: filteredAccounts,
// Create account is very buggy when started from AssetTransfer, disable it for now.
canCreateNewAccount: false
Expand Down
25 changes: 21 additions & 4 deletions RadixWallet/Features/ChooseAccounts/ChooseAccounts+Reducer.swift
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import ComposableArchitecture
import SwiftUI

// MARK: - _ChooseAccounts
// MARK: - ChooseAccounts
public struct ChooseAccounts: Sendable, FeatureReducer {
public struct State: Sendable, Hashable {
public let selectionRequirement: SelectionRequirement
public let context: Context
public let filteredAccounts: [AccountAddress]
public var availableAccounts: IdentifiedArrayOf<Account>
public var selectedAccounts: [ChooseAccountsRow.State]?
Expand All @@ -13,14 +13,23 @@ public struct ChooseAccounts: Sendable, FeatureReducer {
@PresentationState
var destination: Destination.State? = nil

var selectionRequirement: SelectionRequirement {
switch context {
case .assetTransfer:
.exactly(1)
case let .permission(selectionRequirement):
selectionRequirement
}
}

public init(
selectionRequirement: SelectionRequirement,
context: Context,
filteredAccounts: [AccountAddress] = [],
availableAccounts: IdentifiedArrayOf<Account> = [],
selectedAccounts: [ChooseAccountsRow.State]? = nil,
canCreateNewAccount: Bool = true
) {
self.selectionRequirement = selectionRequirement
self.context = context
self.filteredAccounts = filteredAccounts
self.availableAccounts = availableAccounts
self.selectedAccounts = selectedAccounts
Expand Down Expand Up @@ -119,3 +128,11 @@ public struct ChooseAccounts: Sendable, FeatureReducer {
}
}
}

// MARK: - ChooseAccounts.State.Context
extension ChooseAccounts.State {
public enum Context: Sendable, Hashable {
case assetTransfer
case permission(SelectionRequirement)
}
}
5 changes: 3 additions & 2 deletions RadixWallet/Features/ChooseAccounts/ChooseAccounts+View.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ extension ChooseAccounts {
self.canCreateNewAccount = state.canCreateNewAccount

// If the dApp is asking for exactly(1) account and user has only one account, pre-select it
if let account = availableAccounts.first,
if case .permission = state.context,
selectionRequirement == .exactly(1),
availableAccounts.count == 1,
selectionRequirement == .exactly(1)
let account = availableAccounts.first
{
self.selectedAccounts = [account]
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ struct AccountPermissionChooseAccounts: Sendable, FeatureReducer {
challenge: challenge,
accessKind: accessKind,
dappMetadata: dappMetadata,
chooseAccounts: .init(selectionRequirement: .init(numberOfAccounts))
chooseAccounts: .init(context: .permission(.init(numberOfAccounts)))
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ extension AccountPermissionChooseAccounts.State {
accessKind: .ongoing,
dappMetadata: .previewValue,
chooseAccounts: .init(
selectionRequirement: .exactly(1),
context: .assetTransfer,
availableAccounts: .init(
uniqueElements: [
.previewValue0,
Expand Down

0 comments on commit 6416ef6

Please sign in to comment.