You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.2 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildActionClickHandler = void 0;
var _actionHasComponent = require("./action-has-component");
var _actionHref = require("./action-href");
var _buildActionApiCallTrigger = require("./build-action-api-call-trigger");
/* eslint-disable no-restricted-globals */
/* eslint-disable no-undef */
/* eslint-disable no-alert */
const buildActionClickHandler = options => {
const {
action,
params,
actionResponseHandler,
navigate
} = options;
const handleActionClick = event => {
event.preventDefault();
event.stopPropagation();
const href = (0, _actionHref.actionHref)(action, params);
const callApi = (0, _buildActionApiCallTrigger.buildActionCallApiTrigger)({
params,
action,
actionResponseHandler
});
if (action.guard && !confirm(action.guard)) {
return;
}
if ((0, _actionHasComponent.actionHasComponent)(action)) {
// eslint-disable-next-line consistent-return
return callApi();
}
if (href) {
navigate(href);
}
};
return handleActionClick;
};
exports.buildActionClickHandler = buildActionClickHandler;