@shopgate/engage
Version:
Shopgate's ENGAGE library.
37 lines • 3.51 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{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)};};