Merge pull request #12025 from zfox23/commerce_fixWalletSetupCancel

Commerce: Fix the behavior of the 'cancel' button in Wallet Setup
This commit is contained in:
Zach Fox 2017-12-20 09:18:10 -08:00 committed by GitHub
commit 08edc52932
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 8 deletions

View file

@ -41,6 +41,7 @@ Rectangle {
property bool debugCheckoutSuccess: false;
property bool canRezCertifiedItems: Entities.canRezCertified() || Entities.canRezTmpCertified();
property bool isWearable;
property string referrer;
// Style
color: hifi.colors.white;
Connections {
@ -131,7 +132,7 @@ Rectangle {
id: notSetUpTimer;
interval: 200;
onTriggered: {
sendToScript({method: 'checkout_walletNotSetUp', itemId: itemId});
sendToScript({method: 'checkout_walletNotSetUp', itemId: itemId, referrer: referrer});
}
}
@ -877,6 +878,7 @@ Rectangle {
itemName = message.params.itemName;
root.itemPrice = message.params.itemPrice;
itemHref = message.params.itemHref;
referrer = message.params.referrer;
setBuyText();
break;
default:

View file

@ -252,7 +252,7 @@ Item {
height: 50;
text: "Cancel";
onClicked: {
sendSignalToWallet({method: 'walletSetup_cancelClicked'});
sendSignalToWallet({method: 'walletSetup_cancelClicked', referrer: root.referrer });
}
}
}

View file

@ -61,10 +61,26 @@
function fromQml(message) {
switch (message.method) {
case 'passphrasePopup_cancelClicked':
case 'walletSetup_cancelClicked':
case 'needsLogIn_cancelClicked':
tablet.gotoHomeScreen();
break;
case 'walletSetup_cancelClicked':
switch (message.referrer) {
case '': // User clicked "Wallet" app
case undefined:
case null:
tablet.gotoHomeScreen();
break;
case 'purchases':
case 'marketplace cta':
case 'mainPage':
tablet.gotoWebScreen(MARKETPLACE_URL, MARKETPLACES_INJECT_SCRIPT_URL);
break;
default: // User needs to return to an individual marketplace item URL
tablet.gotoWebScreen(MARKETPLACE_URL + '/items/' + message.referrer, MARKETPLACES_INJECT_SCRIPT_URL);
break;
}
break;
case 'needsLogIn_loginClicked':
openLoginWindow();
break;

View file

@ -243,13 +243,14 @@
});
}
function buyButtonClicked(id, name, author, price, href) {
function buyButtonClicked(id, name, author, price, href, referrer) {
EventBridge.emitWebEvent(JSON.stringify({
type: "CHECKOUT",
itemId: id,
itemName: name,
itemPrice: price ? parseInt(price, 10) : 0,
itemHref: href
itemHref: href,
referrer: referrer
}));
}
@ -316,7 +317,8 @@
$(this).closest('.grid-item').find('.item-title').text(),
$(this).closest('.grid-item').find('.creator').find('.value').text(),
$(this).closest('.grid-item').find('.item-cost').text(),
$(this).attr('data-href'));
$(this).attr('data-href'),
"mainPage");
});
}
@ -420,7 +422,8 @@
$('#top-center').find('h1').text(),
$('#creator').find('.value').text(),
cost,
href);
href,
"itemPage");
}
});
maybeAddPurchasesButton();

View file

@ -436,7 +436,7 @@ var selectionDisplay = null; // for gridTool.js to ignore
wireEventBridge(true);
tablet.sendToQml({
method: 'updateWalletReferrer',
referrer: message.itemId
referrer: message.referrer === "itemPage" ? message.itemId : message.referrer
});
openWallet();
break;