diff --git a/cashtab/package-lock.json b/cashtab/package-lock.json --- a/cashtab/package-lock.json +++ b/cashtab/package-lock.json @@ -1,12 +1,12 @@ { "name": "cashtab", - "version": "2.26.4", + "version": "2.26.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cashtab", - "version": "2.26.4", + "version": "2.26.5", "dependencies": { "@bitgo/utxo-lib": "^9.33.0", "@zxing/browser": "^0.1.4", diff --git a/cashtab/package.json b/cashtab/package.json --- a/cashtab/package.json +++ b/cashtab/package.json @@ -1,6 +1,6 @@ { "name": "cashtab", - "version": "2.26.4", + "version": "2.26.5", "private": true, "scripts": { "start": "node scripts/start.js", diff --git a/cashtab/src/components/Send/SendToken.js b/cashtab/src/components/Send/SendToken.js --- a/cashtab/src/components/Send/SendToken.js +++ b/cashtab/src/components/Send/SendToken.js @@ -176,10 +176,17 @@ const [confirmationOfEtokenToBeBurnt, setConfirmationOfEtokenToBeBurnt] = useState(''); const [aliasInputAddress, setAliasInputAddress] = useState(false); - const [showSend, setShowSend] = useState(true); - const [showBurn, setShowBurn] = useState(false); - const [showAirdrop, setShowAirdrop] = useState(false); - const [showMint, setShowMint] = useState(false); + + // By default, we load the app with all switches disabled + // For SLP v1 tokens, we want showSend to be enabled by default + // But we may not want this to be default for other token types in the future + const switchesOff = { + showSend: false, + showAirdrop: false, + showBurn: false, + showMint: false, + }; + const [switches, setSwitches] = useState(switchesOff); const [showLargeIconModal, setShowLargeIconModal] = useState(false); const defaultUncachedTokenInfo = { circulatingSupply: null, @@ -239,6 +246,10 @@ useEffect(() => { // Get token info that is not practical to cache as it is subject to change getUncachedTokenInfo(); + + // Set the Send switch to on by default + // TODO handle other token types and other default settings + setSwitches(prev => ({ ...prev, showSend: true })); }, []); useEffect(() => { @@ -810,25 +821,23 @@ { - if (!showSend) { - // Make sure all other switches are off - setShowAirdrop(false); - setShowBurn(false); - setShowMint(false); - } - setShowSend(!showSend); + // We turn everything else off, whether we are turning this one on or off + setSwitches({ + ...switchesOff, + showSend: !switches.showSend, + }); }} /> Send {tokenName} ({tokenTicker}) - {showSend && ( + {switches.showSend && ( <> @@ -896,25 +905,23 @@ )} { - if (!showAirdrop) { - // Make sure all other switches are off - setShowBurn(false); - setShowSend(false); - setShowMint(false); - } - setShowAirdrop(!showAirdrop); - }} + checked={switches.showAirdrop} + handleToggle={() => + // We turn everything else off, whether we are turning this one on or off + setSwitches({ + ...switchesOff, + showAirdrop: !switches.showAirdrop, + }) + } /> Airdrop XEC to {tokenTicker} holders - {showAirdrop && ( + {switches.showAirdrop && ( { - if (!showBurn) { - // Make sure all other switches are off - setShowAirdrop(false); - setShowSend(false); - setShowMint(false); - } - setShowBurn(!showBurn); - }} + checked={switches.showBurn} + handleToggle={() => + // We turn everything else off, whether we are turning this one on or off + setSwitches({ + ...switchesOff, + showBurn: !switches.showBurn, + }) + } /> Burn {tokenTicker} - {showBurn && ( + {switches.showBurn && ( { - if (!showMint) { - // Make sure all other switches are off - setShowAirdrop(false); - setShowBurn(false); - setShowSend(false); - } - setShowMint(!showMint); - }} + checked={switches.showMint} + handleToggle={() => + // We turn everything else off, whether we are turning this one on or off + setSwitches({ + ...switchesOff, + showMint: !switches.showMint, + }) + } /> Mint @@ -1000,7 +1003,7 @@ : ''} - {showMint && ( + {switches.showMint && (