[FIX] Unhandled action on UIKit (#1703)

This commit is contained in:
Djorkaeff Alexandre 2020-02-11 13:00:58 -03:00 committed by GitHub
parent 836683591c
commit ebe36cdc00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 51 additions and 47 deletions

View File

@ -29,6 +29,7 @@ export const useBlockContext = ({
loading, setLoading, error, value, language loading, setLoading, error, value, language
}, async({ value }) => { }, async({ value }) => {
setLoading(true); setLoading(true);
try {
await action({ await action({
blockId, blockId,
appId: appId || appIdFromContext, appId: appId || appIdFromContext,
@ -36,6 +37,9 @@ export const useBlockContext = ({
value, value,
viewId viewId
}); });
} catch (e) {
// do nothing
}
setLoading(false); setLoading(false);
}]; }];
} }
@ -44,12 +48,16 @@ export const useBlockContext = ({
loading, setLoading, value, error, language loading, setLoading, value, error, language
}, async({ value }) => { }, async({ value }) => {
setLoading(true); setLoading(true);
try {
await state({ await state({
blockId, blockId,
appId, appId,
actionId, actionId,
value value
}); });
} catch (e) {
// do nothing
}
setLoading(false); setLoading(false);
}]; }];
}; };

View File

@ -1,8 +1,6 @@
import random from '../../utils/random'; import random from '../../utils/random';
import EventEmitter from '../../utils/events'; import EventEmitter from '../../utils/events';
import Navigation from '../Navigation'; import Navigation from '../Navigation';
import { showErrorAlert } from '../../utils/info';
import I18n from '../../i18n';
const TRIGGER_TIMEOUT = 5000; const TRIGGER_TIMEOUT = 5000;
@ -112,6 +110,7 @@ export function triggerAction({
const { userId, authToken } = this.sdk.currentLogin; const { userId, authToken } = this.sdk.currentLogin;
const { host } = this.sdk.client; const { host } = this.sdk.client;
try {
// we need to use fetch because this.sdk.post add /v1 to url // we need to use fetch because this.sdk.post add /v1 to url
const result = await fetch(`${ host }/api/apps/ui.interaction/${ appId }/`, { const result = await fetch(`${ host }/api/apps/ui.interaction/${ appId }/`, {
method: 'POST', method: 'POST',
@ -134,21 +133,18 @@ export function triggerAction({
try { try {
const { type: interactionType, ...data } = await result.json(); const { type: interactionType, ...data } = await result.json();
handlePayloadUserInteraction(interactionType, data); return resolve(handlePayloadUserInteraction(interactionType, data));
if (data.success) {
return resolve();
}
return reject();
} catch (e) { } catch (e) {
if (result.status !== 200) { // modal.close has no body, so result.json will fail
showErrorAlert(I18n.t('Oops')); // but it returns ok status
return reject(); if (result.ok) {
}
}
return resolve(); return resolve();
}
}
} catch (e) {
// do nothing
}
return reject();
}); });
} }