Skip to content

Commit

Permalink
[FIX] Unhandled action on UIKit (#1703)
Browse files Browse the repository at this point in the history
  • Loading branch information
djorkaeffalexandre authored Feb 11, 2020
1 parent 8366835 commit ebe36cd
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 48 deletions.
34 changes: 21 additions & 13 deletions app/containers/UIKit/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,17 @@ export const useBlockContext = ({
loading, setLoading, error, value, language
}, async({ value }) => {
setLoading(true);
await action({
blockId,
appId: appId || appIdFromContext,
actionId,
value,
viewId
});
try {
await action({
blockId,
appId: appId || appIdFromContext,
actionId,
value,
viewId
});
} catch (e) {
// do nothing
}
setLoading(false);
}];
}
Expand All @@ -44,12 +48,16 @@ export const useBlockContext = ({
loading, setLoading, value, error, language
}, async({ value }) => {
setLoading(true);
await state({
blockId,
appId,
actionId,
value
});
try {
await state({
blockId,
appId,
actionId,
value
});
} catch (e) {
// do nothing
}
setLoading(false);
}];
};
66 changes: 31 additions & 35 deletions app/lib/methods/actions.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import random from '../../utils/random';
import EventEmitter from '../../utils/events';
import Navigation from '../Navigation';
import { showErrorAlert } from '../../utils/info';
import I18n from '../../i18n';

const TRIGGER_TIMEOUT = 5000;

Expand Down Expand Up @@ -112,43 +110,41 @@ export function triggerAction({
const { userId, authToken } = this.sdk.currentLogin;
const { host } = this.sdk.client;

// we need to use fetch because this.sdk.post add /v1 to url
const result = await fetch(`${ host }/api/apps/ui.interaction/${ appId }/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Auth-Token': authToken,
'X-User-Id': userId
},
body: JSON.stringify({
type,
actionId,
payload,
container,
mid,
rid,
triggerId,
viewId
})
});

try {
const { type: interactionType, ...data } = await result.json();
handlePayloadUserInteraction(interactionType, data);

if (data.success) {
return resolve();
// we need to use fetch because this.sdk.post add /v1 to url
const result = await fetch(`${ host }/api/apps/ui.interaction/${ appId }/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Auth-Token': authToken,
'X-User-Id': userId
},
body: JSON.stringify({
type,
actionId,
payload,
container,
mid,
rid,
triggerId,
viewId
})
});

try {
const { type: interactionType, ...data } = await result.json();
return resolve(handlePayloadUserInteraction(interactionType, data));
} catch (e) {
// modal.close has no body, so result.json will fail
// but it returns ok status
if (result.ok) {
return resolve();
}
}

return reject();
} catch (e) {
if (result.status !== 200) {
showErrorAlert(I18n.t('Oops'));
return reject();
}
// do nothing
}

return resolve();
return reject();
});
}

Expand Down

0 comments on commit ebe36cd

Please sign in to comment.