Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ABW-3932] Factor Source detail view #1427

Merged
merged 12 commits into from
Jan 8, 2025
40 changes: 16 additions & 24 deletions RadixWallet.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@
48CFC23F2ADC10D900E77A5C /* PreferenceList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC6E2ADC10D800E77A5C /* PreferenceList.swift */; };
48CFC2402ADC10D900E77A5C /* AccountPreferences+Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC6F2ADC10D800E77A5C /* AccountPreferences+Reducer.swift */; };
48CFC2412ADC10D900E77A5C /* DevAccountPreferences+Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC712ADC10D800E77A5C /* DevAccountPreferences+Reducer.swift */; };
48CFC2422ADC10D900E77A5C /* UpdateAccountLabel+Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC722ADC10D800E77A5C /* UpdateAccountLabel+Reducer.swift */; };
48CFC2432ADC10D900E77A5C /* UpdateAccountLabel+View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC732ADC10D800E77A5C /* UpdateAccountLabel+View.swift */; };
48CFC2442ADC10D900E77A5C /* ThirdPartyDeposits+Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC752ADC10D800E77A5C /* ThirdPartyDeposits+Reducer.swift */; };
48CFC2452ADC10D900E77A5C /* AddAsset+Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC762ADC10D800E77A5C /* AddAsset+Reducer.swift */; };
48CFC2462ADC10D900E77A5C /* AddAssets+View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48CFBC772ADC10D800E77A5C /* AddAssets+View.swift */; };
Expand Down Expand Up @@ -756,8 +754,6 @@
5B526AED2C89C3C200AF8B72 /* ResourcesVisibilityClient+Live.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B526AE92C89C3C200AF8B72 /* ResourcesVisibilityClient+Live.swift */; };
5B526AEE2C89C3C200AF8B72 /* ResourcesVisibilityClient+Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B526AEA2C89C3C200AF8B72 /* ResourcesVisibilityClient+Test.swift */; };
5B634A942C91D2A0004B2FBC /* ScreenshotPreventing in Frameworks */ = {isa = PBXBuildFile; productRef = 5B634A932C91D2A0004B2FBC /* ScreenshotPreventing */; };
5B634AAE2C92F6EC004B2FBC /* UpdateP2PLinkName+Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B634AAD2C92F6EC004B2FBC /* UpdateP2PLinkName+Reducer.swift */; };
5B634AB02C92F6FA004B2FBC /* UpdateP2PLinkName+View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B634AAF2C92F6FA004B2FBC /* UpdateP2PLinkName+View.swift */; };
5B6499B72BCFD0E8000F2176 /* SecurityFactors+View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B6499B52BCFD0E8000F2176 /* SecurityFactors+View.swift */; };
5B6499B82BCFD0E8000F2176 /* SecurityFactors+Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B6499B62BCFD0E8000F2176 /* SecurityFactors+Reducer.swift */; };
5B6499BA2BCFDB1E000F2176 /* ShareView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B6499B92BCFDB1E000F2176 /* ShareView.swift */; };
Expand Down Expand Up @@ -785,6 +781,8 @@
5B8433AA2CD0131B00CA00F5 /* PreAuthorizationFailure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B8433A92CD0131500CA00F5 /* PreAuthorizationFailure.swift */; };
5B8F77102CDA41B100154A76 /* TimeFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B8F770F2CDA41B100154A76 /* TimeFormatter.swift */; };
5B8F77132CDA41F800154A76 /* PreAuthorizationReviewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B8F77122CDA41F800154A76 /* PreAuthorizationReviewTests.swift */; };
5B92AAB62D2E97E600486A9B /* RenameLabel+View.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B92AAB42D2E97E600486A9B /* RenameLabel+View.swift */; };
5B92AAB72D2E97E600486A9B /* RenameLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B92AAB32D2E97E600486A9B /* RenameLabel.swift */; };
5B96DD372BD917B300722882 /* Text+Extra.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B96DD362BD917B300722882 /* Text+Extra.swift */; };
5B9846BD2BBD5C8800E814F3 /* SensitiveInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5B9846BC2BBD5C8800E814F3 /* SensitiveInfo.plist */; };
5B9846C02BBD5F0800E814F3 /* SensitiveInfoClient+Interface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9846BF2BBD5F0800E814F3 /* SensitiveInfoClient+Interface.swift */; };
Expand Down Expand Up @@ -1366,8 +1364,6 @@
48CFBC6E2ADC10D800E77A5C /* PreferenceList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferenceList.swift; sourceTree = "<group>"; };
48CFBC6F2ADC10D800E77A5C /* AccountPreferences+Reducer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AccountPreferences+Reducer.swift"; sourceTree = "<group>"; };
48CFBC712ADC10D800E77A5C /* DevAccountPreferences+Reducer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DevAccountPreferences+Reducer.swift"; sourceTree = "<group>"; };
48CFBC722ADC10D800E77A5C /* UpdateAccountLabel+Reducer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UpdateAccountLabel+Reducer.swift"; sourceTree = "<group>"; };
48CFBC732ADC10D800E77A5C /* UpdateAccountLabel+View.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UpdateAccountLabel+View.swift"; sourceTree = "<group>"; };
48CFBC752ADC10D800E77A5C /* ThirdPartyDeposits+Reducer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ThirdPartyDeposits+Reducer.swift"; sourceTree = "<group>"; };
48CFBC762ADC10D800E77A5C /* AddAsset+Reducer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AddAsset+Reducer.swift"; sourceTree = "<group>"; };
48CFBC772ADC10D800E77A5C /* AddAssets+View.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AddAssets+View.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2025,8 +2021,6 @@
5B526AE82C89C3C200AF8B72 /* ResourcesVisibilityClient+Interface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ResourcesVisibilityClient+Interface.swift"; sourceTree = "<group>"; };
5B526AE92C89C3C200AF8B72 /* ResourcesVisibilityClient+Live.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ResourcesVisibilityClient+Live.swift"; sourceTree = "<group>"; };
5B526AEA2C89C3C200AF8B72 /* ResourcesVisibilityClient+Test.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ResourcesVisibilityClient+Test.swift"; sourceTree = "<group>"; };
5B634AAD2C92F6EC004B2FBC /* UpdateP2PLinkName+Reducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UpdateP2PLinkName+Reducer.swift"; sourceTree = "<group>"; };
5B634AAF2C92F6FA004B2FBC /* UpdateP2PLinkName+View.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UpdateP2PLinkName+View.swift"; sourceTree = "<group>"; };
5B6499B52BCFD0E8000F2176 /* SecurityFactors+View.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecurityFactors+View.swift"; sourceTree = "<group>"; };
5B6499B62BCFD0E8000F2176 /* SecurityFactors+Reducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SecurityFactors+Reducer.swift"; sourceTree = "<group>"; };
5B6499B92BCFDB1E000F2176 /* ShareView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareView.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2054,6 +2048,8 @@
5B8433A92CD0131500CA00F5 /* PreAuthorizationFailure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreAuthorizationFailure.swift; sourceTree = "<group>"; };
5B8F770F2CDA41B100154A76 /* TimeFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeFormatter.swift; sourceTree = "<group>"; };
5B8F77122CDA41F800154A76 /* PreAuthorizationReviewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreAuthorizationReviewTests.swift; sourceTree = "<group>"; };
5B92AAB32D2E97E600486A9B /* RenameLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameLabel.swift; sourceTree = "<group>"; };
5B92AAB42D2E97E600486A9B /* RenameLabel+View.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RenameLabel+View.swift"; sourceTree = "<group>"; };
5B96DD362BD917B300722882 /* Text+Extra.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Text+Extra.swift"; sourceTree = "<group>"; };
5B9846BC2BBD5C8800E814F3 /* SensitiveInfo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = SensitiveInfo.plist; sourceTree = "<group>"; };
5B9846BF2BBD5F0800E814F3 /* SensitiveInfoClient+Interface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SensitiveInfoClient+Interface.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2847,8 +2843,6 @@
48CFBC712ADC10D800E77A5C /* DevAccountPreferences+Reducer.swift */,
48CFBC7B2ADC10D800E77A5C /* DevAccountPreferences+View.swift */,
48CFBC742ADC10D800E77A5C /* ThirdPartyDeposits */,
48CFBC722ADC10D800E77A5C /* UpdateAccountLabel+Reducer.swift */,
48CFBC732ADC10D800E77A5C /* UpdateAccountLabel+View.swift */,
);
path = Children;
sourceTree = "<group>";
Expand Down Expand Up @@ -3028,7 +3022,6 @@
48CFBCBF2ADC10D800E77A5C /* P2PLinksFeature */ = {
isa = PBXGroup;
children = (
5B634AAC2C92F6C5004B2FBC /* UpdateP2PLinkName */,
48CFBCC02ADC10D800E77A5C /* Coordinator */,
);
path = P2PLinksFeature;
Expand Down Expand Up @@ -5083,6 +5076,7 @@
48CFC1322ADC10D900E77A5C /* FeaturePrelude */ = {
isa = PBXGroup;
children = (
5B92AAB52D2E97E600486A9B /* RenameLabel */,
5B6E11462C45834C00C20F2D /* AccountCard */,
E775A1B62CF4CA0700E72DB9 /* FactorSourceCard */,
48CFC1332ADC10D900E77A5C /* LedgerRowView.swift */,
Expand Down Expand Up @@ -5706,15 +5700,6 @@
path = ResourcesVisibilityClient;
sourceTree = "<group>";
};
5B634AAC2C92F6C5004B2FBC /* UpdateP2PLinkName */ = {
isa = PBXGroup;
children = (
5B634AAD2C92F6EC004B2FBC /* UpdateP2PLinkName+Reducer.swift */,
5B634AAF2C92F6FA004B2FBC /* UpdateP2PLinkName+View.swift */,
);
path = UpdateP2PLinkName;
sourceTree = "<group>";
};
5B6499B42BCFD0C7000F2176 /* SecurityFactors */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -5842,6 +5827,15 @@
path = PreAuthorizationReviewTests;
sourceTree = "<group>";
};
5B92AAB52D2E97E600486A9B /* RenameLabel */ = {
isa = PBXGroup;
children = (
5B92AAB32D2E97E600486A9B /* RenameLabel.swift */,
5B92AAB42D2E97E600486A9B /* RenameLabel+View.swift */,
);
path = RenameLabel;
sourceTree = "<group>";
};
5B9846BE2BBD5EF600E814F3 /* SensitiveInfoClient */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -7488,7 +7482,6 @@
48CFC25A2ADC10D900E77A5C /* OnboardingCoordinator+Reducer.swift in Sources */,
5BB7C1782BC81F61001216EB /* ImportOlympiaNameLedger+View.swift in Sources */,
48CFC3482ADC10D900E77A5C /* PersonaDataPermission.swift in Sources */,
48CFC2422ADC10D900E77A5C /* UpdateAccountLabel+Reducer.swift in Sources */,
48CFC3432ADC10D900E77A5C /* AccountPermission+View.swift in Sources */,
48CFC2452ADC10D900E77A5C /* AddAsset+Reducer.swift in Sources */,
48CFC42E2ADC10DA00E77A5C /* KeyPath+Sendable.swift in Sources */,
Expand All @@ -7512,7 +7505,6 @@
5B4A1AB32CBFC99200679EE6 /* SignProofOfOwnership.swift in Sources */,
E62449D62AFBA61100272C67 /* Home+AccountRow+View.swift in Sources */,
A40816682C7F14D4005E65B9 /* InfoLinkSheet+Reducer.swift in Sources */,
5B634AAE2C92F6EC004B2FBC /* UpdateP2PLinkName+Reducer.swift in Sources */,
A408154D2C7E0D08005E65B9 /* Extensions.swift in Sources */,
48CFC5FE2ADC10DA00E77A5C /* Account+PreviewValues.swift in Sources */,
A408157C2C7E0D08005E65B9 /* FungibleResourcesCollectionItemVaultAggregatedVault.swift in Sources */,
Expand Down Expand Up @@ -7824,7 +7816,6 @@
83823EA72B722DB000827211 /* HTTPClient+Interface.swift in Sources */,
A40816152C7E0D08005E65B9 /* StateEntityMetadataPageRequest.swift in Sources */,
48CFC5972ADC10DA00E77A5C /* ToggleView.swift in Sources */,
5B634AB02C92F6FA004B2FBC /* UpdateP2PLinkName+View.swift in Sources */,
5B03E3D32CC141D100E10A64 /* InteractionReview+Extra.swift in Sources */,
48CFC4892ADC10DA00E77A5C /* EntityMetadata+GWMetadata.swift in Sources */,
48CFC3512ADC10D900E77A5C /* DappHeader.swift in Sources */,
Expand Down Expand Up @@ -8015,7 +8006,6 @@
A40815D82C7E0D08005E65B9 /* ProgrammaticScryptoSborValueI64.swift in Sources */,
A40815EE2C7E0D08005E65B9 /* ResourceAggregationLevel.swift in Sources */,
48CFC5742ADC10DA00E77A5C /* GatewayAPI+Utils.swift in Sources */,
48CFC2432ADC10D900E77A5C /* UpdateAccountLabel+View.swift in Sources */,
48CFC3182ADC10D900E77A5C /* CreateAccountCoordinator+Models.swift in Sources */,
48CFC2822ADC10D900E77A5C /* SelectFeePayer.swift in Sources */,
48CFC5D52ADC10DA00E77A5C /* TokenShadowModifier.swift in Sources */,
Expand Down Expand Up @@ -8340,6 +8330,8 @@
48CFC4152ADC10DA00E77A5C /* PasteboardClient+Interface.swift in Sources */,
48CFC2902ADC10D900E77A5C /* Accounts.swift in Sources */,
48CFC4632ADC10DA00E77A5C /* OverlayWindowClient+Test.swift in Sources */,
5B92AAB62D2E97E600486A9B /* RenameLabel+View.swift in Sources */,
5B92AAB72D2E97E600486A9B /* RenameLabel.swift in Sources */,
E7AE2D102C07371C00830BAA /* FullScreenOverlayCoordinator+View.swift in Sources */,
A462B5C32B95212600C26D20 /* TransactionHistoryFilters+View.swift in Sources */,
A40815CB2C7E0D08005E65B9 /* PackageBlueprintCollection.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ extension OverlayWindowClient {
}

extension OverlayWindowClient.Item.HUD {
static let updatedAccount = Self(text: L10n.AccountSettings.updatedAccountHUDMessage)
static let copied = Self(text: L10n.AddressAction.copiedToClipboard)
static let seedPhraseImported = Self(text: L10n.ImportMnemonic.seedPhraseImported)
static let thankYou = Self(text: "Thank you!")
Expand Down
53 changes: 45 additions & 8 deletions RadixWallet/Core/DesignSystem/Components/PlainListRow.swift
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ struct PlainListRow<Icon: View, Accessory: View>: View {
top
hints
}
.applyIf(viewState.rowCoreViewState.shouldTintAsError) {
$0.foregroundStyle(Color.app.error)
}
.padding(.vertical, viewState.rowCoreViewState.verticalPadding)
.padding(.horizontal, viewState.rowCoreViewState.horizontalPadding)
.frame(minHeight: .plainListRowMinHeight)
Expand Down Expand Up @@ -132,25 +135,26 @@ struct PlainListRowCore: View {
let title: String?
let subtitle: String?
let detail: String?
let markdown: String?

init(
context: Context = .settings,
title: String?,
subtitle: String? = nil,
detail: String? = nil
detail: String? = nil,
markdown: String? = nil
) {
self.context = context
self.title = title
self.subtitle = subtitle
self.detail = detail
self.markdown = markdown
}
}

let viewState: ViewState

init(
viewState: ViewState
) {
init(viewState: ViewState) {
self.viewState = viewState
}

Expand All @@ -165,7 +169,7 @@ struct PlainListRowCore: View {
.lineSpacing(-6)
.lineLimit(viewState.titleLineLimit)
.textStyle(viewState.titleTextStyle)
.foregroundColor(.app.gray1)
.foregroundColor(viewState.titleForegroundColor)
}

if let subtitle = viewState.subtitle {
Expand All @@ -185,6 +189,15 @@ struct PlainListRowCore: View {
.foregroundColor(.app.gray2)
.padding(.top, .small3)
}

if let markdown = viewState.markdown {
Text(markdown: markdown, emphasizedColor: .app.gray2, emphasizedFont: .app.body1Header)
.textStyle(.body1Regular)
.lineLimit(1)
.minimumScaleFactor(0.8)
.foregroundStyle(.app.gray2)
.padding(.top, .small3)
}
}
}
}
Expand All @@ -208,12 +221,23 @@ private extension PlainListRowCore.ViewState {
}
}

var titleForegroundColor: Color {
switch context {
case .toggle, .hiddenPersona, .settings(isError: false), .dappAndPersona, .compactPersona:
.app.gray1
case .settings(isError: true):
.app.error
}
}

var subtitleForegroundColor: Color {
switch context {
case .toggle, .hiddenPersona:
.app.gray2
case .settings, .dappAndPersona, .compactPersona:
case .settings(isError: false), .dappAndPersona, .compactPersona:
.app.gray1
case .settings(isError: true):
.app.error
}
}

Expand Down Expand Up @@ -256,16 +280,29 @@ private extension PlainListRowCore.ViewState {
.medium1
}
}

var shouldTintAsError: Bool {
switch context {
case .settings(isError: true):
true
default:
false
}
}
}

// MARK: - PlainListRowCore.ViewState.Context
extension PlainListRowCore.ViewState {
enum Context {
case settings
enum Context: Equatable {
case settings(isError: Bool)
case toggle
case dappAndPersona
case hiddenPersona
case compactPersona

static var settings: Self {
.settings(isError: false)
}
}
}

Expand Down
10 changes: 10 additions & 0 deletions RadixWallet/Core/DesignSystem/Extensions/View+Extra.swift
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ extension View {
}
}

/// Applies the given transform when the given conditions is met.
@ViewBuilder
func applyIf(_ condition: Bool, @ViewBuilder transform: (Self) -> some View) -> some View {
if condition {
transform(self)
} else {
self
}
}

/// Sets the List section spacing if possible.
@available(iOS, deprecated: 18.0, message: "Should use native `listSectionSpacing` once iOS 16 is no longer supported.")
func withListSectionSpacing(_ spacing: CGFloat) -> some SwiftUI.View {
Expand Down
4 changes: 2 additions & 2 deletions RadixWallet/Core/DesignSystem/ToggleView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ struct ToggleView: SwiftUI.View {
let context: Context
let icon: ImageResource?
let title: String
let subtitle: String
let subtitle: String?
let minHeight: CGFloat
let isOn: Binding<Bool>

init(
context: Context = .toggle,
icon: ImageResource? = nil,
title: String,
subtitle: String,
subtitle: String?,
minHeight: CGFloat = .largeButtonHeight,
isOn: Binding<Bool>
) {
Expand Down
21 changes: 21 additions & 0 deletions RadixWallet/Core/FeaturePrelude/FeatureReducer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -209,4 +209,25 @@ extension FeatureReducer {
}
return .none
}

func exportMnemonic(
integrity: FactorSourceIntegrity,
onSuccess: (SimplePrivateFactorSource) -> Void
) -> Effect<Action> {
guard let factorSourceId = integrity.factorSourceIdOfMnemonicToExport else {
return .none
}
return exportMnemonic(factorSourceID: factorSourceId, onSuccess: onSuccess)
}
}

private extension FactorSourceIntegrity {
var factorSourceIdOfMnemonicToExport: FactorSourceIdFromHash? {
switch self {
case let .device(device):
device.factorSource.id
case .ledger, .offDeviceMnemonic, .arculusCard, .password:
nil
}
}
}
Loading
Loading