UNPKG

@shopgate/engage

Version:
37 lines 3.51 kB
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{SOFT_OPT_IN_SHOWN,SOFT_OPT_IN_SELECTED,HARD_OPT_IN_SHOWN,HARD_OPT_IN_SELECTED,PERMISSION_STATUS_DENIED,PERMISSION_STATUS_GRANTED,PERMISSION_STATUS_NOT_DETERMINED}from'@shopgate/engage/core/constants';/** * @typedef {Object} OptInMeta * @property {string} permission Permission type the event is dispatched for */ /** * Sanitizes the meta object of opt in actions * @param {OptInMeta} meta The original meta object * @returns {Object} The sanitized meta object */var sanitizeMeta=function sanitizeMeta(){var meta=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return _extends({permission:'other'},meta);};/** * Creates the SOFT_OPT_IN_SHOWN Redux action object that's supposed to be dispatched when a * soft opt-in (e.g. push or tracking) was shown. * @param {Object} params Action params * @param {OptInMeta} params.meta Meta data for the action * @returns {Object} The Redux action object */export var softOptInShown=function softOptInShown(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},meta=_ref.meta;return{type:SOFT_OPT_IN_SHOWN,meta:sanitizeMeta(meta)};};/** * Creates the SOFT_OPT_IN_SELECTED Redux action object that's supposed to be dispatched when a * a decision inside a soft opt-in (e.g. push or tracking) was taken. * @param {Object} params Action params * @param {"approved"|"denied"|"later"|"approvedAll"|"deniedAll"|"manage"} params.selection * User selection * @param {OptInMeta} params.meta Meta data for the action * @returns {Object} The Redux action object */export var softOptInSelected=function softOptInSelected(_ref2){var selection=_ref2.selection,meta=_ref2.meta;return{type:SOFT_OPT_IN_SELECTED,selection:selection,meta:sanitizeMeta(meta)};};/** * Creates the HARD_OPT_IN_SHOWN Redux action object that's supposed to be dispatched when a * hard opt-in (native permission dialog) was shown. * @param {Object} params Action params * @param {string} params.permissionId Permission id the action was dispatched for * @param {OptInMeta} params.meta Meta data for the action * @returns {Object} The Redux action object */export var hardOptInShown=function hardOptInShown(_ref3){var permissionId=_ref3.permissionId,meta=_ref3.meta;return{type:HARD_OPT_IN_SHOWN,permissionId:permissionId,meta:sanitizeMeta(meta)};};/** * Creates the HARD_OPT_IN_SELECTED Redux action object that's supposed to be dispatched when a * a decision inside a hard opt-in (native permission dialog) was taken. * @param {Object} params Action params * @param {string} params.permissionId Permission id the action was dispatched for * @param {string} params.status Permission status * @param {OptInMeta} params.meta Meta data for the action * @returns {Object} The Redux action object */export var hardOptInSelected=function hardOptInSelected(_ref4){var permissionId=_ref4.permissionId,status=_ref4.status,meta=_ref4.meta;var selection='other';switch(status){case PERMISSION_STATUS_GRANTED:selection='approved';break;case PERMISSION_STATUS_DENIED:selection='denied';break;case PERMISSION_STATUS_NOT_DETERMINED:selection='later';break;default:break;}return{type:HARD_OPT_IN_SELECTED,permissionId:permissionId,selection:selection,meta:sanitizeMeta(meta)};};