@@ -7,6 +7,8 @@ struct ScannerScreen: View {
77 @EnvironmentObject private var scanner : ScannerManager
88 @EnvironmentObject private var settings : SettingsViewModel
99 @EnvironmentObject private var sheets : SheetViewModel
10+ @State private var isManualEntryPresented = false
11+ @State private var manualEntry = " "
1012
1113 private var scannerContext : ScannerContext {
1214 if navigation. path. contains ( . electrumSettings) {
@@ -39,6 +41,19 @@ struct ScannerScreen: View {
3941 ) {
4042 await scanner. handlePaste ( context: scannerContext)
4143 }
44+ . padding ( . bottom, Env . isE2E ? 12 : 0 )
45+
46+ if Env . isE2E {
47+ CustomButton (
48+ title: " Enter QR Code String " ,
49+ variant: . secondary,
50+ shouldExpand: true
51+ ) {
52+ manualEntry = " "
53+ isManualEntryPresented = true
54+ }
55+ . accessibilityIdentifier ( " ScanPrompt " )
56+ }
4257 }
4358 . navigationBarHidden ( true )
4459 . padding ( . horizontal, 16 )
@@ -52,5 +67,27 @@ struct ScannerScreen: View {
5267 sheets: sheets
5368 )
5469 }
70+ . sheet ( isPresented: $isManualEntryPresented) {
71+ ScannerManualEntryPrompt (
72+ text: $manualEntry,
73+ onSubmit: {
74+ Task {
75+ await handleManualEntrySubmit ( )
76+ }
77+ } ,
78+ onCancel: {
79+ isManualEntryPresented = false
80+ }
81+ )
82+ . presentationDetents ( [ . fraction( 0.35 ) ] )
83+ . presentationDragIndicator ( . visible)
84+ }
85+ }
86+
87+ private func handleManualEntrySubmit( ) async {
88+ await scanner. handleManualEntry ( manualEntry, context: scannerContext) {
89+ isManualEntryPresented = false
90+ manualEntry = " "
91+ }
5592 }
5693}
0 commit comments