[Cashtab] Lock UI and disable keyboard input while user switches wallets
Summary:
Depends on D17551
If the user rapidly toggles between wallets before they have finished loading, we can queue up dozens of tasks and the app can start constantly changing wallets
If we change wallets, wait for the wallet to load before allowing another wallet change or use of this stored wallet.
Test Plan:
npm test to confirm no breaking existing behavior
deployed at test site: https://cashtab-local-dev.netlify.app/
change wallets as fast as you can on the test site
- cashtab.com should still load fast, as we do not spinner while the stored wallet loads
- changing wallets should lock the UI and take a few seconds
- keyboard arrows will not select a new wallet while a wallet is loading
Reviewers: #bitcoin_abc, emack
Reviewed By: #bitcoin_abc, emack
Differential Revision: https://reviews.bitcoinabc.org/D17552