]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/commitdiff
Update only happens when phrase is changed
authorIan Coleman <coleman.ian@gmail.com>
Thu, 25 Sep 2014 00:32:50 +0000 (10:32 +1000)
committerIan Coleman <coleman.ian@gmail.com>
Thu, 25 Sep 2014 00:32:50 +0000 (10:32 +1000)
ie not on keyup where the key is ctrl or arrow-key etc.

bip39-standalone.html
src/js/index.js

index 591cdce272107a0609d71dbff917b4183a2152e8..9bc6e88fbca0010202b3bebde6e7fa0aa6a9f43b 100644 (file)
@@ -22733,6 +22733,8 @@ WORDLISTS = {
     DOM.privateKeyToggle = $(".private-key-toggle");
 
     var derivationPath = DOM.bip44path.val();
+    var currentPhrase = DOM.phrase.val();
+    var currentPassphrase = DOM.passphrase.val();
 
     function init() {
         // Events
@@ -22757,6 +22759,9 @@ WORDLISTS = {
     // Event handlers
 
     function delayedPhraseChanged() {
+        if (!hasChanged()) {
+            return;
+        }
         hideValidationError();
         showPending();
         if (phraseChangeTimeoutEvent != null) {
@@ -22786,6 +22791,9 @@ WORDLISTS = {
         calcBip32Seed(phrase, passphrase, derivationPath);
         displayBip32Info();
         hidePending();
+        // Set current state so we only update as needed
+        currentPhrase = phrase;
+        currentPassphrase = passphrase;
     }
 
     function generateClicked() {
@@ -22807,7 +22815,9 @@ WORDLISTS = {
     }
 
     function derivationChanged() {
-        delayedPhraseChanged();
+        hideValidationError();
+        showPending();
+        setTimeout(phraseChanged, 50);
     }
 
     function bip32Changed() {
@@ -23036,6 +23046,12 @@ WORDLISTS = {
             .hide();
     }
 
+    function hasChanged() {
+        var phraseChanged = DOM.phrase.val() != currentPhrase;
+        var passphraseChanged = DOM.passphrase.val() != currentPassphrase;
+        return phraseChanged || passphraseChanged;
+    }
+
     init();
 
 })();
index cee8ffbac5d36a557208e6058dd5445420f20d99..5bdb7ab5b7c7ea3036ac5210d851b32fb94cace6 100644 (file)
@@ -32,6 +32,8 @@
     DOM.privateKeyToggle = $(".private-key-toggle");
 
     var derivationPath = DOM.bip44path.val();
+    var currentPhrase = DOM.phrase.val();
+    var currentPassphrase = DOM.passphrase.val();
 
     function init() {
         // Events
@@ -56,6 +58,9 @@
     // Event handlers
 
     function delayedPhraseChanged() {
+        if (!hasChanged()) {
+            return;
+        }
         hideValidationError();
         showPending();
         if (phraseChangeTimeoutEvent != null) {
@@ -85,6 +90,9 @@
         calcBip32Seed(phrase, passphrase, derivationPath);
         displayBip32Info();
         hidePending();
+        // Set current state so we only update as needed
+        currentPhrase = phrase;
+        currentPassphrase = passphrase;
     }
 
     function generateClicked() {
     }
 
     function derivationChanged() {
-        delayedPhraseChanged();
+        hideValidationError();
+        showPending();
+        setTimeout(phraseChanged, 50);
     }
 
     function bip32Changed() {
             .hide();
     }
 
+    function hasChanged() {
+        var phraseChanged = DOM.phrase.val() != currentPhrase;
+        var passphraseChanged = DOM.passphrase.val() != currentPassphrase;
+        return phraseChanged || passphraseChanged;
+    }
+
     init();
 
 })();