taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/wallet.ts | 2++
Msrc/webex/pages/tip.tsx | 2+-
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>