prevent race condition where we can accept tip before the background page knows about it

This commit is contained in:
Florian Dold 2018-04-09 00:20:54 +02:00
parent 3570e36baa
commit 6533716fac
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
2 changed files with 3 additions and 1 deletions

View File

@ -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;
}

View File

@ -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>