Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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