fix handling and display of errors on get API call

This commit is contained in:
Jeremy Kauffman 2017-07-30 15:37:44 -04:00
parent 0a32ff1735
commit 8acccafe19
3 changed files with 11 additions and 8 deletions

View file

@ -9,7 +9,7 @@ import {
} from "selectors/file_info"; } from "selectors/file_info";
import { selectResolvingUris } from "selectors/content"; import { selectResolvingUris } from "selectors/content";
import { selectCostInfoForUri } from "selectors/cost_info"; import { selectCostInfoForUri } from "selectors/cost_info";
import { doOpenModal } from "actions/app"; import { doAlertError, doOpenModal } from "actions/app";
import { doClaimEligiblePurchaseRewards } from "actions/rewards"; import { doClaimEligiblePurchaseRewards } from "actions/rewards";
import { selectBadgeNumber } from "selectors/app"; import { selectBadgeNumber } from "selectors/app";
import { selectTotalDownloadProgress } from "selectors/file_info"; import { selectTotalDownloadProgress } from "selectors/file_info";
@ -238,6 +238,7 @@ export function doStartDownload(uri, outpoint) {
if (downloadingByOutpoint[outpoint]) return; if (downloadingByOutpoint[outpoint]) return;
lbry.file_list({ outpoint, full_status: true }).then(([fileInfo]) => { lbry.file_list({ outpoint, full_status: true }).then(([fileInfo]) => {
dispatch({ dispatch({
type: types.DOWNLOADING_STARTED, type: types.DOWNLOADING_STARTED,
data: { data: {
@ -297,6 +298,8 @@ export function doLoadVideo(uri) {
} else { } else {
dispatch(doDownloadFile(uri, streamInfo)); dispatch(doDownloadFile(uri, streamInfo));
} }
}).catch(error => {
dispatch(doAlertError(error));
}); });
}; };
} }
@ -452,4 +455,4 @@ export function doPublish(params) {
lbry.publishDeprecated(params, null, success, failure); lbry.publishDeprecated(params, null, success, failure);
}); });
}; };
} }

View file

@ -6,7 +6,7 @@ class ModalError extends React.PureComponent {
render() { render() {
const { modal, closeModal, error } = this.props; const { modal, closeModal, error } = this.props;
const errorObj = typeof error === "string" ? { error: error } : error; const errorObj = typeof error === "string" ? { message: error } : error;
const error_key_labels = { const error_key_labels = {
connectionString: __("API connection string"), connectionString: __("API connection string"),
@ -18,10 +18,10 @@ class ModalError extends React.PureComponent {
}; };
const errorInfoList = []; const errorInfoList = [];
for (let key of Object.keys(error)) { for (let key of Object.keys(errorObj)) {
let val = typeof error[key] == "string" let val = typeof errorObj[key] == "string"
? error[key] ? errorObj[key]
: JSON.stringify(error[key]); : JSON.stringify(errorObj[key]);
let label = error_key_labels[key]; let label = error_key_labels[key];
errorInfoList.push( errorInfoList.push(
<li key={key}><strong>{label}</strong>: <code>{val}</code></li> <li key={key}><strong>{label}</strong>: <code>{val}</code></li>

View file

@ -27,7 +27,7 @@ jsonrpc.call = function(
xhr.addEventListener("load", function() { xhr.addEventListener("load", function() {
var response = JSON.parse(xhr.responseText); var response = JSON.parse(xhr.responseText);
let error = response.error || response.result && response.result.error let error = response.error || response.result && response.result.error;
if (error) { if (error) {
if (errorCallback) { if (errorCallback) {
errorCallback(error); errorCallback(error);