require flag to set the default account after calling getSync

This commit is contained in:
Sean Yesmunt 2019-10-04 12:52:28 -04:00
parent 44b6373ada
commit d1dba98bb6
3 changed files with 63 additions and 67 deletions

44
dist/bundle.es.js vendored
View file

@ -2375,34 +2375,18 @@ function doSetDefaultAccount(success, failure) {
});
};
}
function doSetSync(oldHash, newHash, data, password) {
function doSetSync(oldHash, newHash, data) {
return dispatch => {
dispatch({
type: SET_SYNC_STARTED
});
Lbryio.call('sync', 'set', {
return Lbryio.call('sync', 'set', {
old_hash: oldHash,
new_hash: newHash,
data
}, 'post').then(response => {
if (!response.hash) {
return dispatch({
type: SET_SYNC_FAILED,
data: {
error: 'No hash returned for sync/set.'
}
});
}
if (oldHash && newHash !== oldHash) {
dispatch(doSetDefaultAccount(() => {
if (password !== undefined) {
lbryRedux.Lbry.account_unlock({
password
});
dispatch(lbryRedux.doFetchChannelListMine());
}
}));
throw Error('No hash returned for sync/set.');
}
return dispatch({
@ -2421,7 +2405,7 @@ function doSetSync(oldHash, newHash, data, password) {
});
};
}
function doGetSync(password = '') {
function doGetSync(password = '', shouldSetDefaultAccount) {
return dispatch => {
dispatch({
type: GET_SYNC_STARTED
@ -2436,7 +2420,7 @@ function doGetSync(password = '') {
data.syncData = response.data;
data.hasSyncedWallet = true;
if (response.changed) {
if (response.changed || shouldSetDefaultAccount) {
return lbryRedux.Lbry.sync_apply({
password,
data: response.data
@ -2449,9 +2433,23 @@ function doGetSync(password = '') {
data
});
if (walletHash !== syncHash) {
if (walletHash !== syncHash || shouldSetDefaultAccount) {
// different local hash, need to synchronise
dispatch(doSetSync(syncHash, walletHash, walletData, password));
dispatch(doSetSync(syncHash, walletHash, walletData));
if (shouldSetDefaultAccount) {
dispatch(doSetDefaultAccount(() => {
lbryRedux.Lbry.status().then(status => {
if (status.wallet.is_locked) {
lbryRedux.Lbry.account_unlock({
password
});
}
dispatch(lbryRedux.doFetchChannelListMine());
});
}));
}
}
});
}

43
dist/bundle.js vendored
View file

@ -3938,34 +3938,18 @@ function doSetDefaultAccount(success, failure) {
});
};
}
function doSetSync(oldHash, newHash, data, password) {
function doSetSync(oldHash, newHash, data) {
return function (dispatch) {
dispatch({
type: constants_action_types__WEBPACK_IMPORTED_MODULE_0__["SET_SYNC_STARTED"]
});
lbryio__WEBPACK_IMPORTED_MODULE_1__["default"].call('sync', 'set', {
return lbryio__WEBPACK_IMPORTED_MODULE_1__["default"].call('sync', 'set', {
old_hash: oldHash,
new_hash: newHash,
data: data
}, 'post').then(function (response) {
if (!response.hash) {
return dispatch({
type: constants_action_types__WEBPACK_IMPORTED_MODULE_0__["SET_SYNC_FAILED"],
data: {
error: 'No hash returned for sync/set.'
}
});
}
if (oldHash && newHash !== oldHash) {
dispatch(doSetDefaultAccount(function () {
if (password !== undefined) {
lbry_redux__WEBPACK_IMPORTED_MODULE_2__["Lbry"].account_unlock({
password: password
});
dispatch(Object(lbry_redux__WEBPACK_IMPORTED_MODULE_2__["doFetchChannelListMine"])());
}
}));
throw Error('No hash returned for sync/set.');
}
return dispatch({
@ -3986,6 +3970,7 @@ function doSetSync(oldHash, newHash, data, password) {
}
function doGetSync() {
var password = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var shouldSetDefaultAccount = arguments.length > 1 ? arguments[1] : undefined;
return function (dispatch) {
dispatch({
type: constants_action_types__WEBPACK_IMPORTED_MODULE_0__["GET_SYNC_STARTED"]
@ -4000,7 +3985,7 @@ function doGetSync() {
data.syncData = response.data;
data.hasSyncedWallet = true;
if (response.changed) {
if (response.changed || shouldSetDefaultAccount) {
return lbry_redux__WEBPACK_IMPORTED_MODULE_2__["Lbry"].sync_apply({
password: password,
data: response.data
@ -4012,9 +3997,23 @@ function doGetSync() {
data: data
});
if (walletHash !== syncHash) {
if (walletHash !== syncHash || shouldSetDefaultAccount) {
// different local hash, need to synchronise
dispatch(doSetSync(syncHash, walletHash, walletData, password));
dispatch(doSetSync(syncHash, walletHash, walletData));
if (shouldSetDefaultAccount) {
dispatch(doSetDefaultAccount(function () {
lbry_redux__WEBPACK_IMPORTED_MODULE_2__["Lbry"].status().then(function (status) {
if (status.wallet.is_locked) {
lbry_redux__WEBPACK_IMPORTED_MODULE_2__["Lbry"].account_unlock({
password: password
});
}
dispatch(Object(lbry_redux__WEBPACK_IMPORTED_MODULE_2__["doFetchChannelListMine"])());
});
}));
}
}
});
}

View file

@ -51,30 +51,16 @@ export function doSetDefaultAccount(success, failure) {
};
}
export function doSetSync(oldHash, newHash, data, password) {
export function doSetSync(oldHash, newHash, data) {
return dispatch => {
dispatch({
type: ACTIONS.SET_SYNC_STARTED,
});
Lbryio.call('sync', 'set', { old_hash: oldHash, new_hash: newHash, data }, 'post')
return Lbryio.call('sync', 'set', { old_hash: oldHash, new_hash: newHash, data }, 'post')
.then(response => {
if (!response.hash) {
return dispatch({
type: ACTIONS.SET_SYNC_FAILED,
data: { error: 'No hash returned for sync/set.' },
});
}
if (oldHash && newHash !== oldHash) {
dispatch(
doSetDefaultAccount(() => {
if (password !== undefined) {
Lbry.account_unlock({ password });
dispatch(doFetchChannelListMine());
}
})
);
throw Error('No hash returned for sync/set.');
}
return dispatch({
@ -91,7 +77,7 @@ export function doSetSync(oldHash, newHash, data, password) {
};
}
export function doGetSync(password = '') {
export function doGetSync(password = '', shouldSetDefaultAccount) {
return dispatch => {
dispatch({
type: ACTIONS.GET_SYNC_STARTED,
@ -105,19 +91,32 @@ export function doGetSync(password = '') {
data.syncHash = syncHash;
data.syncData = response.data;
data.hasSyncedWallet = true;
if (response.changed) {
if (response.changed || shouldSetDefaultAccount) {
return Lbry.sync_apply({ password, data: response.data }).then(
({ hash: walletHash, data: walletData }) => {
dispatch({ type: ACTIONS.GET_SYNC_COMPLETED, data });
if (walletHash !== syncHash) {
if (walletHash !== syncHash || shouldSetDefaultAccount) {
// different local hash, need to synchronise
dispatch(doSetSync(syncHash, walletHash, walletData, password));
dispatch(doSetSync(syncHash, walletHash, walletData));
if (shouldSetDefaultAccount) {
dispatch(
doSetDefaultAccount(() => {
Lbry.status().then(status => {
if (status.wallet.is_locked) {
Lbry.account_unlock({ password });
}
dispatch(doFetchChannelListMine());
});
})
);
}
}
}
);
}
dispatch({ type: ACTIONS.GET_SYNC_COMPLETED, data });
})
.catch(() => {