@shopgate/engage
Version:
Shopgate's ENGAGE library.
23 lines • 2.94 kB
JavaScript
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{PERMISSION_ID_PUSH}from'@shopgate/engage/core/constants';import grantPermissions from"./grantPermissions";/**
* Determines the current state of the push permissions.
* If not already happened, the user will be prompted to grant permissions.
* The action returns a promise which resolves with a boolean value, that indicates the state.
* @param {Object} options Action options.
* @param {boolean} [options.useSettingsModal=true] Whether in case of declined permissions a modal
* shall be presented, which redirects to the app settings.
* @param {boolean} [options.useRationaleModal=false] Whether a rational modal should be shown
* @param {Object} [options.rationaleModal={}] Options for the rationale modal.
* @param {string} options.rationaleModal.title Modal title.
* @param {string} options.rationaleModal.message Modal message.
* @param {string} options.rationaleModal.confirm Label for the confirm button.
* @param {string} options.rationaleModal.dismiss Label for the dismiss button.
* @param {Object} options.rationaleModal.params Additional parameters for i18n strings.
* @param {Object} [options.modal={}] Options for the settings modal.
* @param {string} options.modal.title Modal title.
* @param {string} options.modal.message Modal message.
* @param {string} options.modal.confirm Label for the confirm button.
* @param {string} options.modal.dismiss Label for the dismiss button.
* @param {Object} options.modal.params Additional parameters for i18n strings.
* @param {Object} [options.meta={}] Additional meta data used for opt-in tracking actions
* @return { Function } A redux thunk.
*/var grantPushPermissions=function grantPushPermissions(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return function(dispatch){var _options$useSettingsM=options.useSettingsModal,useSettingsModal=_options$useSettingsM===void 0?true:_options$useSettingsM,_options$useRationale=options.useRationaleModal,useRationaleModal=_options$useRationale===void 0?false:_options$useRationale,_options$modal=options.modal,modal=_options$modal===void 0?{}:_options$modal,_options$rationaleMod=options.rationaleModal,rationaleModal=_options$rationaleMod===void 0?{}:_options$rationaleMod,_options$meta=options.meta,meta=_options$meta===void 0?{}:_options$meta;return dispatch(grantPermissions({permissionId:PERMISSION_ID_PUSH,useSettingsModal:useSettingsModal,useRationaleModal:useRationaleModal,modal:_extends({title:null,message:'permissions.access_denied.push_message',confirm:'permissions.access_denied.settings_button'},modal),rationaleModal:rationaleModal,meta:meta}));};};export default grantPushPermissions;