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.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							1.2 KiB
						
					
					
				"use strict";
 | 
						|
 | 
						|
Object.defineProperty(exports, "__esModule", {
 | 
						|
  value: true
 | 
						|
});
 | 
						|
exports.useAction = useAction;
 | 
						|
 | 
						|
var _reactRouter = require("react-router");
 | 
						|
 | 
						|
var _interfaces = require("../../interfaces");
 | 
						|
 | 
						|
var _actionHref = require("../../interfaces/action/action-href");
 | 
						|
 | 
						|
var _useActionResponseHandler = require("./use-action-response-handler");
 | 
						|
 | 
						|
/**
 | 
						|
 * @load ./use-action.doc.md
 | 
						|
 * @subcategory Hooks
 | 
						|
 *
 | 
						|
 * @param {ActionJSON}   action      action object
 | 
						|
 * @param {ActionParams} params
 | 
						|
 * @param {ActionCallCallback} onActionCall - callback triggered when action is performed
 | 
						|
 * @return {UseActionResult}
 | 
						|
 * @class
 | 
						|
 * @hideconstructor
 | 
						|
 */
 | 
						|
function useAction(action, params, onActionCall) {
 | 
						|
  const navigate = (0, _reactRouter.useNavigate)();
 | 
						|
  const actionResponseHandler = (0, _useActionResponseHandler.useActionResponseHandler)(onActionCall);
 | 
						|
  const href = (0, _actionHref.actionHref)(action, params);
 | 
						|
  const callApi = (0, _interfaces.buildActionCallApiTrigger)({
 | 
						|
    action,
 | 
						|
    params,
 | 
						|
    actionResponseHandler
 | 
						|
  });
 | 
						|
  const handleClick = (0, _interfaces.buildActionClickHandler)({
 | 
						|
    action,
 | 
						|
    params,
 | 
						|
    actionResponseHandler,
 | 
						|
    navigate
 | 
						|
  });
 | 
						|
  return {
 | 
						|
    href,
 | 
						|
    callApi,
 | 
						|
    handleClick
 | 
						|
  };
 | 
						|
} |