aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-04-09 00:20:54 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-04-09 00:20:54 +0200
commit6533716fac07e4988ef94231a0c0c8aba68e0d5e (patch)
tree2255e2f1775c050cc638e5de2ca4db8f0da956b8
parent3570e36baa8e407cbfe3e729a638fd8b2d8b22d9 (diff)
downloadwallet-core-6533716fac07e4988ef94231a0c0c8aba68e0d5e.tar.xz
prevent race condition where we can accept tip before the background page knows about it
-rw-r--r--src/wallet.ts2
-rw-r--r--src/webex/pages/tip.tsx2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/wallet.ts b/src/wallet.ts
index 7c8aa7729..1d15722e3 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -2801,6 +2801,7 @@ export class Wallet {
let merchantResp;
tipRecord = await this.q().putOrGetExisting(Stores.tips, tipRecord, [tipRecord.tipId, merchantDomain]);
+ this.notifier.notify();
// Planchets in the form that the merchant expects
const planchetsDetail: TipPlanchetDetail[] = tipRecord.planchets.map((p) => ({
@@ -2846,6 +2847,7 @@ export class Wallet {
tipRecord.pickedUp = true;
await this.q().put(Stores.tips, tipRecord).finish();
+ this.notifier.notify();
return tipRecord;
}
diff --git a/src/webex/pages/tip.tsx b/src/webex/pages/tip.tsx
index f21bc0eaf..6fbb3005d 100644
--- a/src/webex/pages/tip.tsx
+++ b/src/webex/pages/tip.tsx
@@ -127,7 +127,7 @@ class TipDisplay extends React.Component<TipDisplayProps, TipDisplayState> {
<button
className="pure-button pure-button-primary"
type="button"
- disabled={!(this.state.rci && this.state.tipStatus)}
+ disabled={!(this.state.rci && this.state.tipStatus && this.state.tipStatus.tipRecord)}
onClick={() => this.accept()}>
{ this.state.working
? <span><object className="svg-icon svg-baseline" data="/img/spinner-bars.svg" /> </span>