v0.0.8 - Fix: Enter on empty buffer generates mnemonic; Enter on typed text loads it; no more 'g' key interception

This commit is contained in:
Laan Tungir
2026-08-19 13:51:35 -04:00
parent 7bc367e695
commit 2f7f29ed99
4 changed files with 17 additions and 23 deletions
Generated
+1 -1
View File
@@ -1490,7 +1490,7 @@ dependencies = [
[[package]]
name = "nsigner"
version = "0.0.6"
version = "0.0.7"
dependencies = [
"base64",
"chacha20poly1305",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "nsigner"
version = "0.0.7"
version = "0.0.8"
edition = "2021"
license = "MIT"
description = "Attended Nostr signing daemon — Rust port of n_signer"
+1 -1
View File
@@ -31,4 +31,4 @@ pub mod error;
pub use error::NsignerError;
/// Version string (matches C NSIGNER_VERSION).
pub const VERSION: &str = "v0.0.7";
pub const VERSION: &str = "v0.0.8";
+14 -20
View File
@@ -587,31 +587,25 @@ impl App {
// ── Seed entry ──────────────────────────────────────────────────────
fn handle_seed_key(&mut self, key: KeyEvent) {
// 'g' generates a new mnemonic only when the input buffer is empty.
// If the user has already started typing, 'g' is just a letter in a
// mnemonic word.
if (key.code == KeyCode::Char('g') || key.code == KeyCode::Char('G'))
&& self.unlock_input.buffer.is_empty()
{
match self.mnemonic.generate(12) {
Ok(phrase) => {
self.generated_phrase = phrase;
self.seed_generate_mode = true;
self.screen = Screen::SeedDisplay;
}
Err(_) => {
self.seed_attempts += 1;
}
}
return;
}
if edit_key(&mut self.unlock_input, key) {
return;
}
if key.code == KeyCode::Enter {
let input = self.unlock_input.buffer.trim().to_string();
self.unlock_input = InputField::new("");
if !input.is_empty() {
if input.is_empty() {
// Enter on an empty buffer generates a fresh mnemonic.
match self.mnemonic.generate(12) {
Ok(phrase) => {
self.generated_phrase = phrase;
self.seed_generate_mode = true;
self.screen = Screen::SeedDisplay;
}
Err(_) => {
self.seed_attempts += 1;
}
}
} else {
match self.mnemonic.load(&input) {
Ok(()) => self.enter_main(),
Err(_) => {
@@ -1292,7 +1286,7 @@ impl App {
let area = f.area();
let mut lines = vec![
Line::from(""),
Line::from("Enter seed phrase or G to generate new:"),
Line::from("Enter seed phrase (Enter to load, or Enter on empty to generate):"),
Line::from(""),
Line::from(Span::styled(
format!("> {}", self.unlock_input.buffer),