From aa6bce64816ae4bc170086a5bb7aab57d9892db2 Mon Sep 17 00:00:00 2001 From: Harvmaster Date: Fri, 30 Jan 2026 02:57:30 +0000 Subject: [PATCH] Fix sats output --- Electrum.sqlite-journal | Bin 0 -> 12824 bytes src/tui/screens/ActionWizard.tsx | 31 +++++++++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 Electrum.sqlite-journal diff --git a/Electrum.sqlite-journal b/Electrum.sqlite-journal new file mode 100644 index 0000000000000000000000000000000000000000..2ed09652a74a9cfc1f82e06886082a456805c99a GIT binary patch literal 12824 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 !v.value || v.value.trim() === ''); + if (emptyVars.length > 0) { + showError(`Please enter values for: ${emptyVars.map(v => v.name).join(', ')}`); + return; + } + // Create invitation and add variables await createInvitationWithVariables(); return; @@ -476,18 +483,30 @@ export function ActionWizardScreen(): React.ReactElement { }); }, []); + // Check if TextInput should have exclusive focus (variables step with content focus) + const textInputHasFocus = currentStepData?.type === 'variables' && focusArea === 'content'; + // Handle keyboard navigation useInput((input, key) => { + // When TextInput has focus, only handle Tab to navigate away + if (textInputHasFocus) { + if (key.tab) { + // Move to next variable or to buttons + if (focusedInput < variables.length - 1) { + setFocusedInput(prev => prev + 1); + } else { + setFocusArea('buttons'); + setFocusedButton('next'); + } + } + // Let TextInput handle all other input + return; + } + // Tab to switch between content and buttons if (key.tab) { if (focusArea === 'content') { // Handle tab based on current step type - if (currentStepData?.type === 'variables' && variables.length > 0) { - if (focusedInput < variables.length - 1) { - setFocusedInput(prev => prev + 1); - return; - } - } if (currentStepData?.type === 'inputs' && availableUtxos.length > 0) { if (selectedUtxoIndex < availableUtxos.length - 1) { setSelectedUtxoIndex(prev => prev + 1);