UNPKG

@shopgate/engage

Version:
49 lines (48 loc) 2.21 kB
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. */ const grantPushPermissions = (options = {}) => dispatch => { const { useSettingsModal = true, useRationaleModal = false, modal = {}, rationaleModal = {}, meta = {} } = options; return dispatch(grantPermissions({ permissionId: PERMISSION_ID_PUSH, useSettingsModal, useRationaleModal, modal: { title: null, message: 'permissions.access_denied.push_message', confirm: 'permissions.access_denied.settings_button', ...modal }, rationaleModal, meta })); }; export default grantPushPermissions;