Renamed sendFlowService functions to be more consistent.

This commit is contained in:
Brendon Duncan 2018-08-09 13:01:48 +12:00
commit bf9b467bfe
5 changed files with 46 additions and 26 deletions

View file

@ -66,6 +66,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory,
} }
function onBeforeEnter(event, data) { function onBeforeEnter(event, data) {
console.log('amount onBeforeEnter sendflow ', sendFlowService.getState());
initCurrencies(); initCurrencies();
@ -209,7 +210,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory,
} }
function goBack() { function goBack() {
sendFlowService.previousState(); sendFlowService.popState();
if (vm.thirdParty && vm.thirdParty.id === 'shapeshift') { if (vm.thirdParty && vm.thirdParty.id === 'shapeshift') {
$state.go('tabs.send').then(function() { $state.go('tabs.send').then(function() {
$ionicHistory.clearHistory(); $ionicHistory.clearHistory();
@ -471,7 +472,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory,
confirmData['thirdParty'] = this.thirdParty; confirmData['thirdParty'] = this.thirdParty;
} }
sendFlowService.map(confirmData); sendFlowService.pushState(confirmData);
if (!confirmData.fromWalletId) { if (!confirmData.fromWalletId) {
$state.transitionTo('tabs.paymentRequest.confirm', confirmData); $state.transitionTo('tabs.paymentRequest.confirm', confirmData);

View file

@ -189,6 +189,8 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
$scope.startWalletToWalletTransfer = function() { $scope.startWalletToWalletTransfer = function() {
console.log('startWalletToWalletTransfer()'); console.log('startWalletToWalletTransfer()');
var params = sendFlowService.getState();
sendFlowService.pushState(params);
$state.transitionTo('tabs.send.wallet-to-wallet', { $state.transitionTo('tabs.send.wallet-to-wallet', {
fromWalletId: sendFlowService.fromWalletId fromWalletId: sendFlowService.fromWalletId
}); });
@ -208,6 +210,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
}; };
$scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.$on("$ionicView.beforeEnter", function(event, data) {
console.log('tab-send onBeforeEnter sendflow ', sendFlowService.getState());
$scope.isIOS = platformInfo.isIOS && platformInfo.isCordova; $scope.isIOS = platformInfo.isIOS && platformInfo.isCordova;
$scope.showWalletsBch = $scope.showWalletsBtc = $scope.showWallets = false; $scope.showWalletsBch = $scope.showWalletsBtc = $scope.showWallets = false;

View file

@ -8,6 +8,8 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu
var unitsFromSatoshis = 0; var unitsFromSatoshis = 0;
$scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.$on("$ionicView.beforeEnter", function(event, data) {
console.log('walletSelector onBeforeEnter sendflow', sendFlowService.getState());
var config = configService.getSync().wallet.settings; var config = configService.getSync().wallet.settings;
priceDisplayAsFiat = config.priceDisplay === 'fiat'; priceDisplayAsFiat = config.priceDisplay === 'fiat';
unitDecimals = config.unitDecimals; unitDecimals = config.unitDecimals;
@ -182,16 +184,18 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu
$scope.useWallet = function(wallet) { $scope.useWallet = function(wallet) {
var params = sendFlowService.getState();
if ($scope.type === 'origin') { // we're on the origin screen, set wallet to send from if ($scope.type === 'origin') { // we're on the origin screen, set wallet to send from
$scope.params['fromWalletId'] = wallet.id; params.fromWalletId = wallet.id;
} else { // we're on the destination screen, set wallet to send to } else { // we're on the destination screen, set wallet to send to
$scope.params['toWalletId'] = wallet.id; params.toWalletId = wallet.id;
} }
sendFlowService.pushState(params);
$state.transitionTo(getNextStep(), $scope.params); $state.transitionTo(getNextStep(), $scope.params);
}; };
$scope.goBack = function() { $scope.goBack = function() {
sendFlowService.previousState(); sendFlowService.popState();
$ionicHistory.goBack(); $ionicHistory.goBack();
} }

View file

@ -105,10 +105,10 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
params.thirdParty = []; params.thirdParty = [];
params.thirdParty.id = serviceId; params.thirdParty.id = serviceId;
params.thirdParty.data = serviceData; params.thirdParty.data = serviceData;
sendFlowService.map(params); sendFlowService.pushState(params);
$state.transitionTo('tabs.send.amount', params); $state.transitionTo('tabs.send.amount', params);
} else { } else {
sendFlowService.map(params); sendFlowService.pushState(params);
$state.transitionTo('tabs.send.origin', params); $state.transitionTo('tabs.send.origin', params);
} }
}, 100); }, 100);
@ -459,7 +459,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
'notify': $state.current.name == 'tabs.send' ? false : true 'notify': $state.current.name == 'tabs.send' ? false : true
}).then(function() { }).then(function() {
$timeout(function() { $timeout(function() {
sendFlowService.map(stateParams); sendFlowService.pushState(stateParams); // Need to do more here
$state.transitionTo('tabs.send.origin', stateParams); $state.transitionTo('tabs.send.origin', stateParams);
}); });
}); });

View file

@ -19,15 +19,17 @@ angular
// Functions // Functions
clear: clear, clear: clear,
getState: getState,
map: map, map: map,
previousState: previousState, popState: popState,
pushState: pushState,
startSend: startSend startSend: startSend
}; };
return service; return service;
function clear() { function clear() {
$log.debug("Reinitialize Send Flow variables with clear()"); console.log("sendFlow clear()");
service.amount = ''; service.amount = '';
service.fromWalletId = ''; service.fromWalletId = '';
service.sendMax = false; service.sendMax = false;
@ -38,41 +40,51 @@ angular
} }
/** /**
* Clears all previous state * Handy for debugging
* @param {} params
*/ */
function startSend(params) { function getState() {
console.log('startSend()');
clear();
Object.keys(params).forEach(function forNewParam(key) {
service[key] = params[key];
});
}
function map(params) {
var currentState = {}; var currentState = {};
Object.keys(service).forEach(function forCurrentParam(key) { Object.keys(service).forEach(function forCurrentParam(key) {
if (typeof service[key] !== 'function' && key !== 'previousStates') { if (typeof service[key] !== 'function' && key !== 'previousStates') {
currentState[key] = service[key]; currentState[key] = service[key];
} }
}); });
service.previousStates.push(currentState); return currentState;
}
// Do we want to inherit the previous state here, or clear first before adding new params? /**
* Clears all previous state
*/
function startSend(params) {
console.log('startSend()');
clear();
map(params);
}
function map(params) {
Object.keys(params).forEach(function forNewParam(key) { Object.keys(params).forEach(function forNewParam(key) {
service[key] = params[key]; service[key] = params[key];
}); });
}; };
function previousState() { function popState() {
console.log('sendFlow pop');
if (service.previousStates.length) { if (service.previousStates.length) {
map(service.previousStates.pop()); var params = service.previousStates.pop();
clear();
map(params);
} else { } else {
clear(); clear();
} }
}; };
function pushState(params) {
console.log('sendFlow push');
var currentParams = getState();
service.previousStates.push(currentParams);
clear();
map(params);
};
}; };
})(); })();