Commentron: *Delegates was failing silently
Added toasts to indicate errors instead of failing silently.
This commit is contained in:
parent
c1cb9345ad
commit
bdb83b5295
3 changed files with 31 additions and 9 deletions
|
@ -1395,6 +1395,7 @@
|
||||||
"Unable to edit this comment, please try again later.": "Unable to edit this comment, please try again later.",
|
"Unable to edit this comment, please try again later.": "Unable to edit this comment, please try again later.",
|
||||||
"No active channel selected.": "No active channel selected.",
|
"No active channel selected.": "No active channel selected.",
|
||||||
"Unable to verify your channel. Please try again.": "Unable to verify your channel. Please try again.",
|
"Unable to verify your channel. Please try again.": "Unable to verify your channel. Please try again.",
|
||||||
|
"Unable to verify signature for %channel%.": "Unable to verify signature for %channel%.",
|
||||||
"Channel cannot be anonymous, please select a channel and try again.": "Channel cannot be anonymous, please select a channel and try again.",
|
"Channel cannot be anonymous, please select a channel and try again.": "Channel cannot be anonymous, please select a channel and try again.",
|
||||||
"Change to list layout": "Change to list layout",
|
"Change to list layout": "Change to list layout",
|
||||||
"Change to tile layout": "Change to tile layout",
|
"Change to tile layout": "Change to tile layout",
|
||||||
|
|
|
@ -5,7 +5,7 @@ import * as PAGES from 'constants/pages';
|
||||||
import { SORT_BY, BLOCK_LEVEL } from 'constants/comment';
|
import { SORT_BY, BLOCK_LEVEL } from 'constants/comment';
|
||||||
import Lbry from 'lbry';
|
import Lbry from 'lbry';
|
||||||
import { parseURI, buildURI, isURIEqual } from 'util/lbryURI';
|
import { parseURI, buildURI, isURIEqual } from 'util/lbryURI';
|
||||||
import { resolveCommentronError } from 'util/commentron-error';
|
import { devToast, doFailedSignatureToast, resolveCommentronError } from 'util/commentron-error';
|
||||||
import { selectClaimForUri, selectClaimsByUri, selectMyChannelClaims } from 'redux/selectors/claims';
|
import { selectClaimForUri, selectClaimsByUri, selectMyChannelClaims } from 'redux/selectors/claims';
|
||||||
import { doResolveUri, doClaimSearch } from 'redux/actions/claims';
|
import { doResolveUri, doClaimSearch } from 'redux/actions/claims';
|
||||||
import { doToast, doSeeNotifications } from 'redux/actions/notifications';
|
import { doToast, doSeeNotifications } from 'redux/actions/notifications';
|
||||||
|
@ -23,19 +23,11 @@ import Comments from 'comments';
|
||||||
import { selectPrefsReady } from 'redux/selectors/sync';
|
import { selectPrefsReady } from 'redux/selectors/sync';
|
||||||
import { doAlertWaitingForSync } from 'redux/actions/app';
|
import { doAlertWaitingForSync } from 'redux/actions/app';
|
||||||
|
|
||||||
const isDev = process.env.NODE_ENV !== 'production';
|
|
||||||
const FETCH_API_FAILED_TO_FETCH = 'Failed to fetch';
|
const FETCH_API_FAILED_TO_FETCH = 'Failed to fetch';
|
||||||
const PROMISE_FULFILLED = 'fulfilled';
|
const PROMISE_FULFILLED = 'fulfilled';
|
||||||
|
|
||||||
const MENTION_REGEX = /(?:^| |\n)@[^\s=&#$@%?:;/"<>%{}|^~[]*(?::[\w]+)?/gm;
|
const MENTION_REGEX = /(?:^| |\n)@[^\s=&#$@%?:;/"<>%{}|^~[]*(?::[\w]+)?/gm;
|
||||||
|
|
||||||
function devToast(dispatch, msg) {
|
|
||||||
if (isDev) {
|
|
||||||
console.error(msg); // eslint-disable-line
|
|
||||||
dispatch(doToast({ isError: true, message: `DEV: ${msg}` }));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function doCommentList(
|
export function doCommentList(
|
||||||
uri: string,
|
uri: string,
|
||||||
parentId: string,
|
parentId: string,
|
||||||
|
@ -1321,6 +1313,7 @@ export function doCommentModAddDelegate(
|
||||||
return async (dispatch: Dispatch, getState: GetState) => {
|
return async (dispatch: Dispatch, getState: GetState) => {
|
||||||
const signature = await channelSignData(creatorChannelClaim.claim_id, creatorChannelClaim.name);
|
const signature = await channelSignData(creatorChannelClaim.claim_id, creatorChannelClaim.name);
|
||||||
if (!signature) {
|
if (!signature) {
|
||||||
|
doFailedSignatureToast(dispatch, creatorChannelClaim.name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1359,6 +1352,7 @@ export function doCommentModRemoveDelegate(
|
||||||
return async (dispatch: Dispatch, getState: GetState) => {
|
return async (dispatch: Dispatch, getState: GetState) => {
|
||||||
const signature = await channelSignData(creatorChannelClaim.claim_id, creatorChannelClaim.name);
|
const signature = await channelSignData(creatorChannelClaim.claim_id, creatorChannelClaim.name);
|
||||||
if (!signature) {
|
if (!signature) {
|
||||||
|
doFailedSignatureToast(dispatch, creatorChannelClaim.name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1380,6 +1374,7 @@ export function doCommentModListDelegates(channelClaim: ChannelClaim) {
|
||||||
|
|
||||||
const signature = await channelSignData(channelClaim.claim_id, channelClaim.name);
|
const signature = await channelSignData(channelClaim.claim_id, channelClaim.name);
|
||||||
if (!signature) {
|
if (!signature) {
|
||||||
|
doFailedSignatureToast(dispatch, channelClaim.name);
|
||||||
dispatch({ type: ACTIONS.COMMENT_FETCH_MODERATION_DELEGATES_FAILED });
|
dispatch({ type: ACTIONS.COMMENT_FETCH_MODERATION_DELEGATES_FAILED });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1399,6 +1394,7 @@ export function doCommentModListDelegates(channelClaim: ChannelClaim) {
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
dispatch(doToast({ message: err.message, isError: true }));
|
||||||
dispatch({ type: ACTIONS.COMMENT_FETCH_MODERATION_DELEGATES_FAILED });
|
dispatch({ type: ACTIONS.COMMENT_FETCH_MODERATION_DELEGATES_FAILED });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,29 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
import { doToast } from 'redux/actions/notifications';
|
||||||
|
|
||||||
|
// ****************************************************************************
|
||||||
|
// Helpers
|
||||||
|
// ****************************************************************************
|
||||||
|
|
||||||
|
export function doFailedSignatureToast(dispatch: Dispatch, channelName: string) {
|
||||||
|
dispatch(
|
||||||
|
doToast({
|
||||||
|
message: __('Unable to verify signature for %channel%.', { channel: channelName }),
|
||||||
|
isError: true,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function devToast(dispatch: Dispatch, msg: string) {
|
||||||
|
// @if process.env.NODE_ENV!='production'
|
||||||
|
console.error(msg); // eslint-disable-line
|
||||||
|
dispatch(doToast({ isError: true, message: `DEV: ${msg}` }));
|
||||||
|
// @endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// ****************************************************************************
|
||||||
|
// Error mapping
|
||||||
|
// ****************************************************************************
|
||||||
|
|
||||||
declare type CommentronErrorMap = {
|
declare type CommentronErrorMap = {
|
||||||
[string]: {
|
[string]: {
|
||||||
|
|
Loading…
Reference in a new issue