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
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; |