From: Ian Coleman Date: Thu, 25 Sep 2014 00:32:50 +0000 (+1000) Subject: Update only happens when phrase is changed X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=commitdiff_plain;h=04f789cdbdb8e50511efdf97c900f7f83662eedb Update only happens when phrase is changed ie not on keyup where the key is ctrl or arrow-key etc. --- diff --git a/bip39-standalone.html b/bip39-standalone.html index 591cdce..9bc6e88 100644 --- a/bip39-standalone.html +++ b/bip39-standalone.html @@ -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(); })(); diff --git a/src/js/index.js b/src/js/index.js index cee8ffb..5bdb7ab 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -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() { @@ -106,7 +114,9 @@ } function derivationChanged() { - delayedPhraseChanged(); + hideValidationError(); + showPending(); + setTimeout(phraseChanged, 50); } function bip32Changed() { @@ -335,6 +345,12 @@ .hide(); } + function hasChanged() { + var phraseChanged = DOM.phrase.val() != currentPhrase; + var passphraseChanged = DOM.passphrase.val() != currentPassphrase; + return phraseChanged || passphraseChanged; + } + init(); })();