diff --git a/dist/bundle.es.js b/dist/bundle.es.js index 94e8a0d..70ad297 100644 --- a/dist/bundle.es.js +++ b/dist/bundle.es.js @@ -78,6 +78,7 @@ const GET_SYNC_COMPLETED = 'GET_SYNC_COMPLETED'; const SET_SYNC_STARTED = 'SET_SYNC_STARTED'; const SET_SYNC_FAILED = 'SET_SYNC_FAILED'; const SET_SYNC_COMPLETED = 'SET_SYNC_COMPLETED'; +const SET_DEFAULT_ACCOUNT = 'SET_DEFAULT_ACCOUNT'; var action_types = /*#__PURE__*/Object.freeze({ GENERATE_AUTH_TOKEN_FAILURE: GENERATE_AUTH_TOKEN_FAILURE, @@ -142,7 +143,8 @@ var action_types = /*#__PURE__*/Object.freeze({ GET_SYNC_COMPLETED: GET_SYNC_COMPLETED, SET_SYNC_STARTED: SET_SYNC_STARTED, SET_SYNC_FAILED: SET_SYNC_FAILED, - SET_SYNC_COMPLETED: SET_SYNC_COMPLETED + SET_SYNC_COMPLETED: SET_SYNC_COMPLETED, + SET_DEFAULT_ACCOUNT: SET_DEFAULT_ACCOUNT }); const Lbryio = { @@ -2011,6 +2013,40 @@ function doSetSync(oldHash, newHash, data) { }); }; } +function doSetDefaultAccount() { + return dispatch => { + dispatch({ + type: SET_DEFAULT_ACCOUNT + }); + lbryRedux.Lbry.account_list().then(accountList => { + const { + lbc_mainnet: accounts + } = accountList; + let defaultId; + + for (let i = 0; i < accounts.length; i++) { + if (accounts[i].satoshis > 0) { + defaultId = accounts[i].id; + break; + } + } // In a case where there's no balance on either account + // assume the second (which is created after sync) as default + + + if (!defaultId && accounts.length > 1) { + defaultId = accounts[1].id; + } // Set the default account + + + if (defaultId) { + lbryRedux.Lbry.account_set({ + account_id: defaultId, + default: true + }); + } + }); + }; +} function doGetSync(password) { return dispatch => { dispatch({ @@ -2037,7 +2073,10 @@ function doGetSync(password) { if (walletHash !== syncHash) { // different local hash, need to synchronise dispatch(doSetSync(syncHash, walletHash, walletData)); - } + } // set the default account + + + dispatch(doSetDefaultAccount()); }); } @@ -2648,6 +2687,7 @@ exports.doInstallNew = doInstallNew; exports.doRemoveUnreadSubscription = doRemoveUnreadSubscription; exports.doRemoveUnreadSubscriptions = doRemoveUnreadSubscriptions; exports.doRewardList = doRewardList; +exports.doSetDefaultAccount = doSetDefaultAccount; exports.doSetSync = doSetSync; exports.doSetViewMode = doSetViewMode; exports.doShowSuggestedSubs = doShowSuggestedSubs; diff --git a/dist/bundle.js b/dist/bundle.js index 7ce97c6..cfaa8ba 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -212,6 +212,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doSetSync", function() { return redux_actions_sync__WEBPACK_IMPORTED_MODULE_12__["doSetSync"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doSetDefaultAccount", function() { return redux_actions_sync__WEBPACK_IMPORTED_MODULE_12__["doSetDefaultAccount"]; }); + /* harmony import */ var redux_reducers_auth__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(26); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "authReducer", function() { return redux_reducers_auth__WEBPACK_IMPORTED_MODULE_13__["authReducer"]; }); @@ -507,6 +509,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SET_SYNC_STARTED", function() { return SET_SYNC_STARTED; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SET_SYNC_FAILED", function() { return SET_SYNC_FAILED; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SET_SYNC_COMPLETED", function() { return SET_SYNC_COMPLETED; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SET_DEFAULT_ACCOUNT", function() { return SET_DEFAULT_ACCOUNT; }); // Auth Token var GENERATE_AUTH_TOKEN_FAILURE = 'GENERATE_AUTH_TOKEN_FAILURE'; var GENERATE_AUTH_TOKEN_STARTED = 'GENERATE_AUTH_TOKEN_STARTED'; @@ -577,6 +580,7 @@ var GET_SYNC_COMPLETED = 'GET_SYNC_COMPLETED'; var SET_SYNC_STARTED = 'SET_SYNC_STARTED'; var SET_SYNC_FAILED = 'SET_SYNC_FAILED'; var SET_SYNC_COMPLETED = 'SET_SYNC_COMPLETED'; +var SET_DEFAULT_ACCOUNT = 'SET_DEFAULT_ACCOUNT'; /***/ }), /* 2 */ @@ -3395,6 +3399,7 @@ var doFetchViewCount = function doFetchViewCount(claimId) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doSetSync", function() { return doSetSync; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doSetDefaultAccount", function() { return doSetDefaultAccount; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doGetSync", function() { return doGetSync; }); /* harmony import */ var constants_action_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var lbryio__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); @@ -3438,6 +3443,38 @@ function doSetSync(oldHash, newHash, data) { }); }; } +function doSetDefaultAccount() { + return function (dispatch) { + dispatch({ + type: constants_action_types__WEBPACK_IMPORTED_MODULE_0__["SET_DEFAULT_ACCOUNT"] + }); + lbry_redux__WEBPACK_IMPORTED_MODULE_2__["Lbry"].account_list().then(function (accountList) { + var accounts = accountList.lbc_mainnet; + var defaultId; + + for (var i = 0; i < accounts.length; i++) { + if (accounts[i].satoshis > 0) { + defaultId = accounts[i].id; + break; + } + } // In a case where there's no balance on either account + // assume the second (which is created after sync) as default + + + if (!defaultId && accounts.length > 1) { + defaultId = accounts[1].id; + } // Set the default account + + + if (defaultId) { + lbry_redux__WEBPACK_IMPORTED_MODULE_2__["Lbry"].account_set({ + account_id: defaultId, + "default": true + }); + } + }); + }; +} function doGetSync(password) { return function (dispatch) { dispatch({ @@ -3464,7 +3501,10 @@ function doGetSync(password) { if (walletHash !== syncHash) { // different local hash, need to synchronise dispatch(doSetSync(syncHash, walletHash, walletData)); - } + } // set the default account + + + dispatch(doSetDefaultAccount()); }); } diff --git a/src/constants/action_types.js b/src/constants/action_types.js index 889173b..1e9efe2 100644 --- a/src/constants/action_types.js +++ b/src/constants/action_types.js @@ -76,3 +76,4 @@ export const GET_SYNC_COMPLETED = 'GET_SYNC_COMPLETED'; export const SET_SYNC_STARTED = 'SET_SYNC_STARTED'; export const SET_SYNC_FAILED = 'SET_SYNC_FAILED'; export const SET_SYNC_COMPLETED = 'SET_SYNC_COMPLETED'; +export const SET_DEFAULT_ACCOUNT = 'SET_DEFAULT_ACCOUNT'; diff --git a/src/index.js b/src/index.js index dfb554b..da1bcb9 100644 --- a/src/index.js +++ b/src/index.js @@ -59,7 +59,7 @@ export { doFetchCostInfoForUri } from 'redux/actions/cost_info'; export { doBlackListedOutpointsSubscribe } from 'redux/actions/blacklist'; export { doFetchFeaturedUris, doFetchTrendingUris } from 'redux/actions/homepage'; export { doFetchViewCount } from 'redux/actions/stats'; -export { doGetSync, doSetSync } from 'redux/actions/sync'; +export { doGetSync, doSetSync, doSetDefaultAccount } from 'redux/actions/sync'; // reducers export { authReducer } from 'redux/reducers/auth'; diff --git a/src/redux/actions/sync.js b/src/redux/actions/sync.js index db6448a..fa8ecac 100644 --- a/src/redux/actions/sync.js +++ b/src/redux/actions/sync.js @@ -31,6 +31,36 @@ export function doSetSync(oldHash, newHash, data) { }; } +export function doSetDefaultAccount() { + return dispatch => { + dispatch({ + type: ACTIONS.SET_DEFAULT_ACCOUNT, + }); + + Lbry.account_list().then(accountList => { + const { lbc_mainnet: accounts } = accountList; + let defaultId; + for (let i = 0; i < accounts.length; ++i) { + if (accounts[i].satoshis > 0) { + defaultId = accounts[i].id; + break; + } + } + + // In a case where there's no balance on either account + // assume the second (which is created after sync) as default + if (!defaultId && accounts.length > 1) { + defaultId = accounts[1].id; + } + + // Set the default account + if (defaultId) { + Lbry.account_set({ account_id: defaultId, default: true }); + } + }); + }; +} + export function doGetSync(password) { return dispatch => { dispatch({ @@ -50,6 +80,9 @@ export function doGetSync(password) { // different local hash, need to synchronise dispatch(doSetSync(syncHash, walletHash, walletData)); } + + // set the default account + dispatch(doSetDefaultAccount()); } ); }