diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-04-09 00:20:54 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-04-09 00:20:54 +0200 |
commit | 6533716fac07e4988ef94231a0c0c8aba68e0d5e (patch) | |
tree | 2255e2f1775c050cc638e5de2ca4db8f0da956b8 | |
parent | 3570e36baa8e407cbfe3e729a638fd8b2d8b22d9 (diff) |
prevent race condition where we can accept tip before the background page knows about it
-rw-r--r-- | src/wallet.ts | 2 | ||||
-rw-r--r-- | src/webex/pages/tip.tsx | 2 |
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> |