commit 6533716fac07e4988ef94231a0c0c8aba68e0d5e
parent 3570e36baa8e407cbfe3e729a638fd8b2d8b22d9
Author: Florian Dold <florian.dold@gmail.com>
Date: Mon, 9 Apr 2018 00:20:54 +0200
prevent race condition where we can accept tip before the background page knows about it
Diffstat:
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git 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
@@ -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>