Repository URL to install this package:
|
Version:
4.0.3 ▾
|
@doodle/users-api-connector
/
index.js
|
|---|
'use strict';
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
var _Object$assign = require('@babel/runtime-corejs3/core-js-stable/object/assign');
var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
var _spliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/splice');
var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
var _regeneratorRuntime = require('@babel/runtime-corejs3/regenerator');
var effects = require('redux-saga/effects');
var geolocation = require('@doodle/geolocation');
require('fetch-everywhere');
var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
var _setInterval = require('@babel/runtime-corejs3/core-js-stable/set-interval');
var _setTimeout = require('@babel/runtime-corejs3/core-js-stable/set-timeout');
var _Promise = require('@babel/runtime-corejs3/core-js-stable/promise');
var tagmanager = require('@doodle/tagmanager');
var reactRedux = require('react-redux');
var components = require('@doodle/components');
var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
var _extends = require('@babel/runtime-corejs3/helpers/extends');
var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
var React = require('react');
var PropTypes = require('prop-types');
var reactIntl = require('react-intl');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _Object$defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperty);
var _Object$defineProperties__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperties);
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertyDescriptors);
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_forEachInstanceProperty);
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertyDescriptor);
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_filterInstanceProperty);
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertySymbols);
var _Object$keys__default = /*#__PURE__*/_interopDefaultLegacy(_Object$keys);
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var _Object$assign__default = /*#__PURE__*/_interopDefaultLegacy(_Object$assign);
var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_indexOfInstanceProperty);
var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_reduceInstanceProperty);
var _concatInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_concatInstanceProperty);
var _spliceInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_spliceInstanceProperty);
var _JSON$stringify__default = /*#__PURE__*/_interopDefaultLegacy(_JSON$stringify);
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
var _includesInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_includesInstanceProperty);
var _findInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_findInstanceProperty);
var _someInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_someInstanceProperty);
var _setInterval__default = /*#__PURE__*/_interopDefaultLegacy(_setInterval);
var _setTimeout__default = /*#__PURE__*/_interopDefaultLegacy(_setTimeout);
var _Promise__default = /*#__PURE__*/_interopDefaultLegacy(_Promise);
var _Reflect$construct__default = /*#__PURE__*/_interopDefaultLegacy(_Reflect$construct);
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
var ActionTypes = {
LOAD_USER: '@doodle/user/LOAD_USER',
USER_LOADED: '@doodle/user/USER_LOADED',
USER_LOAD_FAILED: '@doodle/user/USER_LOAD_FAILED',
LOAD_THEME: '@doodle/user/LOAD_THEME',
LOAD_THEME_SUCCESS: '@doodle/user/LOAD_THEME_SUCCESS',
LOAD_THEME_ERROR: '@doodle/user/LOAD_THEME_ERROR',
LOAD_BRANDING: '@doodle/user/LOAD_BRANDING',
LOAD_BRANDING_SUCCESS: '@doodle/user/LOAD_BRANDING_SUCCESS',
LOAD_BRANDING_ERROR: '@doodle/user/LOAD_BRANDING_ERROR',
REDIRECT_TO_LOGIN: '@doodle/user/REDIRECT_TO_LOGIN',
REDIRECT_TO_LOGOUT: '@doodle/user/REDIRECT_TO_LOGOUT',
REDIRECT_TO_SIGNUP: '@doodle/user/REDIRECT_TO_SIGNUP',
LOGOUT: '@doodle/user/LOGOUT',
LOGOUT_FINISHED: '@doodle/LOGOUT_FINISHED',
RESEND_ACTIVATIONMAIL: '@doodle/user/RESEND_ACTIVATIONMAIL',
RESEND_ACTIVATIONMAIL_SUCCEEDED: '@doodle/user/RESEND_ACTIVATIONMAIL_SUCCEEDED',
RESEND_ACTIVATIONMAIL_ENABLED: '@doodle/user/RESEND_ACTIVATIONMAIL_ENABLED',
RESEND_ACTIVATIONMAIL_FAILED: '@doodle/user/RESEND_ACTIVATIONMAIL_FAILED'
};
var loadUser = function loadUser(authToken) {
return {
type: ActionTypes.LOAD_USER,
authToken: authToken
};
};
var userLoaded = function userLoaded(user) {
return {
type: ActionTypes.USER_LOADED,
user: user
};
};
var userLoadFailed = function userLoadFailed(error) {
return {
type: ActionTypes.USER_LOAD_FAILED,
error: error
};
};
var loadTheme = function loadTheme(authToken) {
return {
type: ActionTypes.LOAD_THEME,
authToken: authToken
};
};
var loadThemeSuccess = function loadThemeSuccess(theme) {
return {
type: ActionTypes.LOAD_THEME_SUCCESS,
theme: theme
};
};
var loadThemeError = function loadThemeError(error) {
return {
type: ActionTypes.LOAD_THEME_ERROR,
error: error
};
};
var loadBranding = function loadBranding(authToken) {
return {
type: ActionTypes.LOAD_BRANDING,
authToken: authToken
};
};
var loadBrandingSuccess = function loadBrandingSuccess(branding) {
return {
type: ActionTypes.LOAD_BRANDING_SUCCESS,
branding: branding
};
};
var loadBrandingError = function loadBrandingError(error) {
return {
type: ActionTypes.LOAD_BRANDING_ERROR,
error: error
};
};
var redirectToLogin = function redirectToLogin(redirectUrl) {
return {
type: ActionTypes.REDIRECT_TO_LOGIN,
redirectUrl: redirectUrl
};
};
var redirectToLogout = function redirectToLogout() {
return {
type: ActionTypes.REDIRECT_TO_LOGOUT
};
};
var redirectToSignup = function redirectToSignup(redirectUrl) {
return {
type: ActionTypes.REDIRECT_TO_SIGNUP,
redirectUrl: redirectUrl
};
};
var logout = function logout() {
return {
type: ActionTypes.LOGOUT
};
};
var logoutFinished = function logoutFinished() {
return {
type: ActionTypes.LOGOUT_FINISHED
};
};
var resendActivationMail = function resendActivationMail() {
return {
type: ActionTypes.RESEND_ACTIVATIONMAIL
};
};
var resendActivationMailSucceeded = function resendActivationMailSucceeded() {
return {
type: ActionTypes.RESEND_ACTIVATIONMAIL_SUCCEEDED
};
};
var resendActivationEnabled = function resendActivationEnabled() {
return {
type: ActionTypes.RESEND_ACTIVATIONMAIL_ENABLED
};
};
var resendActivationMailFailed = function resendActivationMailFailed() {
return {
type: ActionTypes.RESEND_ACTIVATIONMAIL_FAILED
};
};
var actions = /*#__PURE__*/Object.freeze({
__proto__: null,
ActionTypes: ActionTypes,
loadUser: loadUser,
userLoaded: userLoaded,
userLoadFailed: userLoadFailed,
loadTheme: loadTheme,
loadThemeSuccess: loadThemeSuccess,
loadThemeError: loadThemeError,
loadBranding: loadBranding,
loadBrandingSuccess: loadBrandingSuccess,
loadBrandingError: loadBrandingError,
redirectToLogin: redirectToLogin,
redirectToLogout: redirectToLogout,
redirectToSignup: redirectToSignup,
logout: logout,
logoutFinished: logoutFinished,
resendActivationMail: resendActivationMail,
resendActivationMailSucceeded: resendActivationMailSucceeded,
resendActivationEnabled: resendActivationEnabled,
resendActivationMailFailed: resendActivationMailFailed
});
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default['default'](_context = ownKeys(Object(source), true)).call(_context, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var SettingsActionTypes = {
DELETE_THIRD_PARTY: '@doodle/user/settings/DELETE_THIRD_PARTY',
DELETE_THIRD_PARTY_SUCCESS: '@doodle/user/settings/DELETE_THIRD_PARTY_SUCCESS',
DELETE_THIRD_PARTY_ERROR: '@doodle/user/settings/DELETE_THIRD_PARTY_ERROR',
DELETE_ACCOUNT: '@doodle/user/settings/DELETE_ACCOUNT',
DELETE_ACCOUNT_SUCCESS: '@doodle/user/settings/DELETE_ACCOUNT_SUCCESS',
DELETE_ACCOUNT_ERROR: '@doodle/user/settings/DELETE_ACCOUNT_ERROR',
FETCH_PREMIUMS: '@doodle/user/settings/FETCH_PREMIUMS',
FETCH_PREMIUMS_SUCCESS: '@doodle/user/settings/FETCH_PREMIUMS_SUCCESS',
FETCH_PREMIUMS_ERROR: '@doodle/user/settings/FETCH_PREMIUMS_ERROR',
SAVE_NEW_EMAIL: '@doodle/user/settings/SAVE_NEW_EMAIL',
SAVE_NEW_EMAIL_SUCCESS: '@doodle/user/settings/SAVE_NEW_EMAIL_SUCCESS',
SAVE_NEW_EMAIL_ERROR: '@doodle/user/settings/SAVE_NEW_EMAIL_ERROR',
SAVE_USER: '@doodle/user/settings/SAVE_USER',
SAVE_USER_SUCCESS: '@doodle/user/settings/SAVE_USER_SUCCESS',
SAVE_USER_ERROR: '@doodle/user/settings/SAVE_USER_ERROR',
SAVE_NEW_PASSWORD: '@doodle/user/settings/SAVE_NEW_PASSWORD',
SAVE_NEW_PASSWORD_SUCCESS: '@doodle/user/settings/SAVE_NEW_PASSWORD_SUCCESS',
SAVE_NEW_PASSWORD_ERROR: '@doodle/user/settings/SAVE_NEW_PASSWORD_ERROR',
RESET_NAGS: '@doodle/user/settings/RESET_NAGS',
SAVE_BRANDING: '@doodle/user/settings/SAVE_BRANDING',
SAVE_BRANDING_SUCCESS: '@doodle/user/settings/SAVE_BRANDING_SUCCESS',
SAVE_BRANDING_ERROR: '@doodle/user/settings/SAVE_BRANDING_ERROR',
SAVE_TILE_BACKGROUND: '@doodle/user/settings/SAVE_TILE_BACKGROUND',
SAVE_TILE_BACKGROUND_ERROR: '@doodle/user/settings/SAVE_TILE_BACKGROUND_ERROR',
SAVE_TILE_BACKGROUND_SUCCESS: '@doodle/user/settings/SAVE_TILE_BACKGROUND_SUCCESS',
SAVE_BACKGROUND_COLOR: '@doodle/user/settings/SAVE_BACKGROUND_COLOR',
SAVE_BACKGROUND_COLOR_ERROR: '@doodle/user/settings/SAVE_BACKGROUND_COLOR_ERROR',
SAVE_BACKGROUND_COLOR_SUCCESS: '@doodle/user/settings/SAVE_BACKGROUND_COLOR_SUCCESS',
DISMISS_BRANDING_NAGS: '@doodle/user/settings/DISMISS_BRANDING_NAGS',
UPLOAD_LOGO: '@doodle/user/settings/UPLOAD_LOGO',
UPLOAD_LOGO_SUCCESS: '@doodle/user/settings/UPLOAD_LOGO_SUCCESS',
UPLOAD_LOGO_ERROR: '@doodle/user/settings/UPLOAD_LOGO_ERROR',
REMOVE_LOGO: '@doodle/user/settings/REMOVE_LOGO',
REMOVE_LOGO_SUCCESS: '@doodle/user/settings/REMOVE_LOGO_SUCCESS',
REMOVE_LOGO_ERROR: '@doodle/user/settings/REMOVE_LOGO_ERROR',
UPLOAD_BACKGROUND: '@doodle/branding/UPLOAD_BACKGROUND',
UPLOAD_BACKGROUND_SUCCESS: '@doodle/branding/UPLOAD_BACKGROUND_SUCCESS',
UPLOAD_BACKGROUND_ERROR: '@doodle/branding/UPLOAD_BACKGROUND_ERROR',
REMOVE_BACKGROUND: '@doodle/user/settings/REMOVE_BACKGROUND',
REMOVE_BACKGROUND_SUCCESS: '@doodle/user/settings/REMOVE_BACKGROUND_SUCCESS',
REMOVE_BACKGROUND_ERROR: '@doodle/user/settings/REMOVE_BACKGROUND_ERROR',
DELETE_CALENDAR: '@doodle/user/settings/DELETE_CALENDAR',
DELETE_CALENDAR_SUCCESS: '@doodle/user/settings/DELETE_CALENDAR_SUCCESS',
DELETE_CALENDAR_ERROR: '@doodle/user/settings/DELETE_CALENDAR_ERROR',
GET_DOODLE_FEED: '@doodle/user/settings/GET_DOODLE_FEED',
GET_DOODLE_FEED_SUCCESS: '@doodle/user/settings/GET_DOODLE_FEED_SUCCESS',
GET_DOODLE_FEED_ERROR: '@doodle/user/settings/GET_DOODLE_FEED_ERROR',
CONNECT_DOODLE_FEED: '@doodle/user/settings/CONNECT_DOODLE_FEED',
CONNECT_DOODLE_FEED_SUCCESS: '@doodle/user/settings/CONNECT_DOODLE_FEED_SUCCESS',
CONNECT_DOODLE_FEED_ERROR: '@doodle/user/settings/CONNECT_DOODLE_FEED_ERROR',
RESET_DOODLE_FEED: '@doodle/user/settings/RESET_DOODLE_FEED',
RESET_DOODLE_FEED_SUCCESS: '@doodle/user/settings/RESET_DOODLE_FEED_SUCCESS',
RESET_DOODLE_FEED_ERROR: '@doodle/user/settings/RESET_DOODLE_FEED_ERROR',
DELETE_ADDRESS_BOOK: '@doodle/user/settings/DELETE_ADDRESS_BOOK',
DELETE_ADDRESS_BOOK_SUCCESS: '@doodle/user/settings/DELETE_ADDRESS_BOOK_SUCCESS',
DELETE_ADDRESS_BOOK_ERROR: '@doodle/user/settings/DELETE_ADDRESS_BOOK_ERROR',
LOGOUT_APPS: '@doodle/user/settings/LOGOUT_APPS',
LOGOUT_APPS_SUCCESS: '@doodle/user/settings/LOGOUT_APPS_SUCCESS',
LOGOUT_APPS_ERROR: '@doodle/user/settings/LOGOUT_APPS_ERROR',
GET_APPS: '@doodle/user/settings/GET_APPS',
GET_APPS_SUCCESS: '@doodle/user/settings/GET_APPS_SUCCESS',
GET_APPS_ERROR: '@doodle/user/settings/GET_APPS_ERROR',
SAVE_AVATAR: '@doodle/user/settings/SAVE_AVATAR',
SAVE_AVATAR_SUCCESS: '@doodle/user/settings/SAVE_AVATAR_SUCCESS',
SAVE_AVATAR_ERROR: '@doodle/user/settings/SAVE_AVATAR_ERROR',
DELETE_AVATAR: '@doodle/user/settings/DELETE_AVATAR',
DELETE_AVATAR_SUCCESS: '@doodle/user/settings/DELETE_AVATAR_SUCCESS',
DELETE_AVATAR_ERROR: '@doodle/user/settings/DELETE_AVATAR_ERROR',
UPDATE_AVATAR_LOCALLY: '@doodle/user/settings/UPDATE_AVATAR_LOCALLY',
DISMISS_PREMIUM_NAGS: '@doodle/user/settings/DISMISS_PREMIUM_NAGS',
DISMISS_NOTIFICATIONS_NAGS: '@doodle/user/settings/DISMISS_NOTIFICATIONS_NAGS',
DISMISS_CALENDARS_NAGS: '@doodle/user/settings/DISMISS_CALENDARS_NAGS'
};
var saveNewEmail = function saveNewEmail(authToken, newEmail) {
return {
type: SettingsActionTypes.SAVE_NEW_EMAIL,
authToken: authToken,
newEmail: newEmail
};
};
var saveNewEmailSuccess = function saveNewEmailSuccess() {
return {
type: SettingsActionTypes.SAVE_NEW_EMAIL_SUCCESS
};
};
var saveNewEmailError = function saveNewEmailError(error) {
return {
type: SettingsActionTypes.SAVE_NEW_EMAIL_ERROR,
error: error
};
};
var saveNewPassword = function saveNewPassword(authToken, newPassword, currentPassword) {
return {
type: SettingsActionTypes.SAVE_NEW_PASSWORD,
authToken: authToken,
payload: {
newPassword: newPassword,
currentPassword: currentPassword
}
};
};
var saveNewPasswordSuccess = function saveNewPasswordSuccess() {
return {
type: SettingsActionTypes.SAVE_NEW_PASSWORD_SUCCESS
};
};
var saveNewPasswordError = function saveNewPasswordError(error) {
return {
type: SettingsActionTypes.SAVE_NEW_PASSWORD_ERROR,
error: error
};
};
var fetchPremiums = function fetchPremiums(authToken) {
return {
type: SettingsActionTypes.FETCH_PREMIUMS,
authToken: authToken
};
};
var fetchPremiumsSuccess = function fetchPremiumsSuccess(premiums) {
return {
type: SettingsActionTypes.FETCH_PREMIUMS_SUCCESS,
premiums: premiums
};
};
var fetchPremiumsError = function fetchPremiumsError(error) {
return {
type: SettingsActionTypes.FETCH_PREMIUMS_ERROR,
error: error
};
};
var saveBranding = function saveBranding(authToken, data) {
return {
type: SettingsActionTypes.SAVE_BRANDING,
authToken: authToken,
data: data
};
};
var saveBrandingSuccess = function saveBrandingSuccess(branding) {
return {
type: SettingsActionTypes.SAVE_BRANDING_SUCCESS,
branding: branding
};
};
var saveBrandingError = function saveBrandingError(error) {
return {
type: SettingsActionTypes.SAVE_BRANDING_ERROR,
error: error
};
};
var saveTileBackground = function saveTileBackground(authToken, data) {
return {
type: SettingsActionTypes.SAVE_TILE_BACKGROUND,
authToken: authToken,
data: data
};
};
var saveTileBackgroundSuccess = function saveTileBackgroundSuccess(branding) {
return {
type: SettingsActionTypes.SAVE_TILE_BACKGROUND_SUCCESS,
branding: branding
};
};
var saveTileBackgroundError = function saveTileBackgroundError(error) {
return {
type: SettingsActionTypes.SAVE_TILE_BACKGROUND_ERROR,
error: error
};
};
var saveBackgroundColor = function saveBackgroundColor(authToken, data) {
return {
type: SettingsActionTypes.SAVE_BACKGROUND_COLOR,
authToken: authToken,
data: data
};
};
var saveBackgroundColorSuccess = function saveBackgroundColorSuccess(branding) {
return {
type: SettingsActionTypes.SAVE_BACKGROUND_COLOR_SUCCESS,
branding: branding
};
};
var saveBackgroundColorError = function saveBackgroundColorError(error) {
return {
type: SettingsActionTypes.SAVE_BACKGROUND_COLOR_ERROR,
error: error
};
};
var uploadLogo = function uploadLogo(authToken, file, fileType) {
return {
type: SettingsActionTypes.UPLOAD_LOGO,
authToken: authToken,
payload: {
file: file,
fileType: fileType
}
};
};
var uploadLogoSuccess = function uploadLogoSuccess(response) {
return {
type: SettingsActionTypes.UPLOAD_LOGO_SUCCESS,
payload: _objectSpread({}, response)
};
};
var uploadLogoError = function uploadLogoError(error) {
return {
type: SettingsActionTypes.UPLOAD_LOGO_ERROR,
error: error
};
};
var removeLogo = function removeLogo(authToken) {
return {
type: SettingsActionTypes.REMOVE_LOGO,
authToken: authToken
};
};
var removeLogoSuccess = function removeLogoSuccess() {
return {
type: SettingsActionTypes.REMOVE_LOGO_SUCCESS
};
};
var removeLogoError = function removeLogoError(error) {
return {
type: SettingsActionTypes.REMOVE_LOGO_ERROR,
error: error
};
};
var uploadBackground = function uploadBackground(authToken, file, fileType) {
return {
type: SettingsActionTypes.UPLOAD_BACKGROUND,
authToken: authToken,
payload: {
file: file,
fileType: fileType
}
};
};
var uploadBackgroundSuccess = function uploadBackgroundSuccess(response) {
return {
type: SettingsActionTypes.UPLOAD_BACKGROUND_SUCCESS,
payload: _objectSpread({}, response)
};
};
var uploadBackgroundError = function uploadBackgroundError(error) {
return {
type: SettingsActionTypes.UPLOAD_BACKGROUND_ERROR,
error: error
};
};
var removeBackground = function removeBackground(authToken) {
return {
type: SettingsActionTypes.REMOVE_BACKGROUND,
authToken: authToken
};
};
var removeBackgroundSuccess = function removeBackgroundSuccess() {
return {
type: SettingsActionTypes.REMOVE_BACKGROUND_SUCCESS
};
};
var removeBackgroundError = function removeBackgroundError(error) {
return {
type: SettingsActionTypes.REMOVE_BACKGROUND_ERROR,
error: error
};
};
var deleteThirdParty = function deleteThirdParty(authToken, id) {
return {
type: SettingsActionTypes.DELETE_THIRD_PARTY,
authToken: authToken,
id: id
};
};
var deleteThirdPartySuccess = function deleteThirdPartySuccess(account) {
return {
type: SettingsActionTypes.DELETE_THIRD_PARTY_SUCCESS,
account: account
};
};
var deleteThirdPartyError = function deleteThirdPartyError(error) {
return {
type: SettingsActionTypes.DELETE_THIRD_PARTY_ERROR,
error: error
};
};
var saveUser = function saveUser(authToken, data) {
return {
type: SettingsActionTypes.SAVE_USER,
authToken: authToken,
data: data
};
};
var saveUserSuccess = function saveUserSuccess() {
return {
type: SettingsActionTypes.SAVE_USER_SUCCESS
};
};
var saveUserError = function saveUserError(error) {
return {
type: SettingsActionTypes.SAVE_USER_ERROR,
error: error
};
};
var deleteAccount = function deleteAccount(authToken, password) {
return {
type: SettingsActionTypes.DELETE_ACCOUNT,
authToken: authToken,
password: password
};
};
var deleteAccountSuccess = function deleteAccountSuccess() {
return {
type: SettingsActionTypes.DELETE_ACCOUNT_SUCCESS
};
};
var deleteAccountError = function deleteAccountError(error) {
return {
type: SettingsActionTypes.DELETE_ACCOUNT_ERROR,
error: error
};
};
var resetNags = function resetNags(field) {
return {
type: SettingsActionTypes.RESET_NAGS,
field: field
};
};
var deleteCalendar = function deleteCalendar(authToken, id) {
return {
type: SettingsActionTypes.DELETE_CALENDAR,
authToken: authToken,
id: id
};
};
var deleteCalendarSuccess = function deleteCalendarSuccess(calendar) {
return {
type: SettingsActionTypes.DELETE_CALENDAR_SUCCESS,
calendar: calendar
};
};
var deleteCalendarError = function deleteCalendarError(error) {
return {
type: SettingsActionTypes.DELETE_CALENDAR_ERROR,
error: error
};
};
var getDoodleFeed = function getDoodleFeed(authToken) {
return {
type: SettingsActionTypes.GET_DOODLE_FEED,
authToken: authToken
};
};
var getDoodleFeedSuccess = function getDoodleFeedSuccess(feed) {
return {
type: SettingsActionTypes.GET_DOODLE_FEED_SUCCESS,
feed: feed
};
};
var getDoodleFeedError = function getDoodleFeedError(error) {
return {
type: SettingsActionTypes.GET_DOODLE_FEED_ERROR,
error: error
};
};
var resetDoodleFeed = function resetDoodleFeed(authToken) {
return {
type: SettingsActionTypes.RESET_DOODLE_FEED,
authToken: authToken
};
};
var resetDoodleFeedSuccess = function resetDoodleFeedSuccess(feed) {
return {
type: SettingsActionTypes.RESET_DOODLE_FEED_SUCCESS,
feed: feed
};
};
var resetDoodleFeedError = function resetDoodleFeedError(error) {
return {
type: SettingsActionTypes.RESET_DOODLE_FEED_ERROR,
error: error
};
};
var connectDoodleFeed = function connectDoodleFeed(authToken, url) {
return {
type: SettingsActionTypes.CONNECT_DOODLE_FEED,
authToken: authToken,
url: url
};
};
var connectDoodleFeedSuccess = function connectDoodleFeedSuccess() {
return {
type: SettingsActionTypes.CONNECT_DOODLE_FEED_SUCCESS
};
};
var connectDoodleFeedError = function connectDoodleFeedError(error) {
return {
type: SettingsActionTypes.CONNECT_DOODLE_FEED_ERROR,
error: error
};
};
var deleteAddressBook = function deleteAddressBook(authToken, id) {
return {
type: SettingsActionTypes.DELETE_ADDRESS_BOOK,
authToken: authToken,
id: id
};
};
var deleteAddressBookSuccess = function deleteAddressBookSuccess(addressBook) {
return {
type: SettingsActionTypes.DELETE_ADDRESS_BOOK_SUCCESS,
addressBook: addressBook
};
};
var deleteAddressBookError = function deleteAddressBookError(error) {
return {
type: SettingsActionTypes.DELETE_ADDRESS_BOOK_ERROR,
error: error
};
};
var saveAvatar = function saveAvatar(authToken, file, fileType) {
return {
type: SettingsActionTypes.SAVE_AVATAR,
authToken: authToken,
payload: {
file: file,
fileType: fileType
}
};
};
var saveAvatarSuccess = function saveAvatarSuccess(authToken) {
return {
type: SettingsActionTypes.SAVE_AVATAR_SUCCESS,
authToken: authToken
};
};
var saveAvatarError = function saveAvatarError(error) {
return {
type: SettingsActionTypes.SAVE_AVATAR_ERROR,
error: error
};
};
var deleteAvatar = function deleteAvatar(authToken) {
return {
type: SettingsActionTypes.DELETE_AVATAR,
authToken: authToken
};
};
var deleteAvatarSuccess = function deleteAvatarSuccess() {
return {
type: SettingsActionTypes.DELETE_AVATAR_SUCCESS
};
};
var deleteAvatarError = function deleteAvatarError(error) {
return {
type: SettingsActionTypes.DELETE_AVATAR_ERROR,
error: error
};
};
/**
* Updates the avatar locally to avoid requesting the whole user object.
* @param {string} avatar The data URL of the avatar.
*/
var updateAvatarLocally = function updateAvatarLocally(avatar) {
return {
type: SettingsActionTypes.UPDATE_AVATAR_LOCALLY,
avatar: avatar
};
};
var logoutApps = function logoutApps(authToken) {
return {
type: SettingsActionTypes.LOGOUT_APPS,
authToken: authToken
};
};
var logoutAppsSuccess = function logoutAppsSuccess() {
return {
type: SettingsActionTypes.LOGOUT_APPS_SUCCESS
};
};
var logoutAppsError = function logoutAppsError(error) {
return {
type: SettingsActionTypes.LOGOUT_APPS_ERROR,
error: error
};
};
var getApps = function getApps(authToken) {
return {
type: SettingsActionTypes.GET_APPS,
authToken: authToken
};
};
var getAppsSuccess = function getAppsSuccess(apps) {
return {
type: SettingsActionTypes.GET_APPS_SUCCESS,
apps: apps
};
};
var getAppsError = function getAppsError(error) {
return {
type: SettingsActionTypes.GET_APPS_ERROR,
error: error
};
};
var dismissBrandingNags = function dismissBrandingNags() {
return {
type: SettingsActionTypes.DISMISS_BRANDING_NAGS
};
};
var dismissPremiumNags = function dismissPremiumNags() {
return {
type: SettingsActionTypes.DISMISS_PREMIUM_NAGS
};
};
var dismissNotificationsNags = function dismissNotificationsNags() {
return {
type: SettingsActionTypes.DISMISS_NOTIFICATIONS_NAGS
};
};
var dismissCalendarsNags = function dismissCalendarsNags() {
return {
type: SettingsActionTypes.DISMISS_CALENDARS_NAGS
};
};
var settingsActions = /*#__PURE__*/Object.freeze({
__proto__: null,
SettingsActionTypes: SettingsActionTypes,
saveNewEmail: saveNewEmail,
saveNewEmailSuccess: saveNewEmailSuccess,
saveNewEmailError: saveNewEmailError,
saveNewPassword: saveNewPassword,
saveNewPasswordSuccess: saveNewPasswordSuccess,
saveNewPasswordError: saveNewPasswordError,
fetchPremiums: fetchPremiums,
fetchPremiumsSuccess: fetchPremiumsSuccess,
fetchPremiumsError: fetchPremiumsError,
saveBranding: saveBranding,
saveBrandingSuccess: saveBrandingSuccess,
saveBrandingError: saveBrandingError,
saveTileBackground: saveTileBackground,
saveTileBackgroundSuccess: saveTileBackgroundSuccess,
saveTileBackgroundError: saveTileBackgroundError,
saveBackgroundColor: saveBackgroundColor,
saveBackgroundColorSuccess: saveBackgroundColorSuccess,
saveBackgroundColorError: saveBackgroundColorError,
uploadLogo: uploadLogo,
uploadLogoSuccess: uploadLogoSuccess,
uploadLogoError: uploadLogoError,
removeLogo: removeLogo,
removeLogoSuccess: removeLogoSuccess,
removeLogoError: removeLogoError,
uploadBackground: uploadBackground,
uploadBackgroundSuccess: uploadBackgroundSuccess,
uploadBackgroundError: uploadBackgroundError,
removeBackground: removeBackground,
removeBackgroundSuccess: removeBackgroundSuccess,
removeBackgroundError: removeBackgroundError,
deleteThirdParty: deleteThirdParty,
deleteThirdPartySuccess: deleteThirdPartySuccess,
deleteThirdPartyError: deleteThirdPartyError,
saveUser: saveUser,
saveUserSuccess: saveUserSuccess,
saveUserError: saveUserError,
deleteAccount: deleteAccount,
deleteAccountSuccess: deleteAccountSuccess,
deleteAccountError: deleteAccountError,
resetNags: resetNags,
deleteCalendar: deleteCalendar,
deleteCalendarSuccess: deleteCalendarSuccess,
deleteCalendarError: deleteCalendarError,
getDoodleFeed: getDoodleFeed,
getDoodleFeedSuccess: getDoodleFeedSuccess,
getDoodleFeedError: getDoodleFeedError,
resetDoodleFeed: resetDoodleFeed,
resetDoodleFeedSuccess: resetDoodleFeedSuccess,
resetDoodleFeedError: resetDoodleFeedError,
connectDoodleFeed: connectDoodleFeed,
connectDoodleFeedSuccess: connectDoodleFeedSuccess,
connectDoodleFeedError: connectDoodleFeedError,
deleteAddressBook: deleteAddressBook,
deleteAddressBookSuccess: deleteAddressBookSuccess,
deleteAddressBookError: deleteAddressBookError,
saveAvatar: saveAvatar,
saveAvatarSuccess: saveAvatarSuccess,
saveAvatarError: saveAvatarError,
deleteAvatar: deleteAvatar,
deleteAvatarSuccess: deleteAvatarSuccess,
deleteAvatarError: deleteAvatarError,
updateAvatarLocally: updateAvatarLocally,
logoutApps: logoutApps,
logoutAppsSuccess: logoutAppsSuccess,
logoutAppsError: logoutAppsError,
getApps: getApps,
getAppsSuccess: getAppsSuccess,
getAppsError: getAppsError,
dismissBrandingNags: dismissBrandingNags,
dismissPremiumNags: dismissPremiumNags,
dismissNotificationsNags: dismissNotificationsNags,
dismissCalendarsNags: dismissCalendarsNags
});
var ConnectCalendarActionTypes = {
CONNECT_CALENDAR: '@doodle/user/connectCalendars/CONNECT_CALENDAR',
CONNECT_CALENDAR_SUCCESS: '@doodle/user/connectCalendars/CONNECT_CALENDAR_SUCCESS',
CONNECT_CALENDAR_ERROR: '@doodle/user/connectCalendars/CONNECT_CALENDAR_ERROR',
CONNECT_ADDRESS_BOOK: '@doodle/user/connectCalendars/CONNECT_ADDRESS_BOOK',
CONNECT_ADDRESS_BOOK_SUCCESS: '@doodle/user/connectCalendars/CONNECT_ADDRESS_BOOK_SUCCESS',
CONNECT_ADDRESS_BOOK_ERROR: '@doodle/user/connectCalendars/CONNECT_ADDRESS_BOOK_ERROR',
RESET_CONNECT_CALENDAR_NAGS: '@doodle/user/connectCalendars/RESET_CONNECT_CALENDAR_NAGS'
};
var connectCalendar = function connectCalendar(authToken, provider) {
return {
type: ConnectCalendarActionTypes.CONNECT_CALENDAR,
authToken: authToken,
provider: provider
};
};
var connectCalendarSuccess = function connectCalendarSuccess(provider) {
return {
type: ConnectCalendarActionTypes.CONNECT_CALENDAR_SUCCESS,
provider: provider
};
};
var connectCalendarError = function connectCalendarError(error) {
return {
type: ConnectCalendarActionTypes.CONNECT_CALENDAR_ERROR,
error: error
};
};
var connectAddressBook = function connectAddressBook(authToken, provider) {
return {
type: ConnectCalendarActionTypes.CONNECT_ADDRESS_BOOK,
authToken: authToken,
provider: provider
};
};
var connectAddressBookSuccess = function connectAddressBookSuccess(provider) {
return {
type: ConnectCalendarActionTypes.CONNECT_ADDRESS_BOOK_SUCCESS,
provider: provider
};
};
var connectAddressBookError = function connectAddressBookError(error) {
return {
type: ConnectCalendarActionTypes.CONNECT_ADDRESS_BOOK_ERROR,
error: error
};
};
var resetConnectCalendarNags = function resetConnectCalendarNags() {
return {
type: ConnectCalendarActionTypes.RESET_CONNECT_CALENDAR_NAGS
};
};
var connectCalendarActions = /*#__PURE__*/Object.freeze({
__proto__: null,
ConnectCalendarActionTypes: ConnectCalendarActionTypes,
connectCalendar: connectCalendar,
connectCalendarSuccess: connectCalendarSuccess,
connectCalendarError: connectCalendarError,
connectAddressBook: connectAddressBook,
connectAddressBookSuccess: connectAddressBookSuccess,
connectAddressBookError: connectAddressBookError,
resetConnectCalendarNags: resetConnectCalendarNags
});
var SelectPrimaryCalendarActionTypes = {
SELECT_PRIMARY_CALENDAR: '@doodle/user/selectPrimaryCalendars/SELECT_PRIMARY_CALENDAR',
SELECT_PRIMARY_CALENDAR_SUCCESS: '@doodle/user/selectPrimaryCalendars/SELECT_PRIMARY_CALENDAR_SUCCESS',
SELECT_PRIMARY_CALENDAR_ERROR: '@doodle/user/selectPrimaryCalendars/SELECT_PRIMARY_CALENDAR_ERROR'
};
var selectPrimaryCalendar = function selectPrimaryCalendar(authToken, calendarId) {
return {
type: SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR,
calendarId: calendarId,
authToken: authToken
};
};
var selectPrimaryCalendarSuccess = function selectPrimaryCalendarSuccess(calendarId) {
return {
type: SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR_SUCCESS,
calendarId: calendarId
};
};
var selectPrimaryCalendarError = function selectPrimaryCalendarError(error) {
return {
type: SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR_ERROR,
error: error
};
};
var SelectPrimaryCalendarActions = /*#__PURE__*/Object.freeze({
__proto__: null,
SelectPrimaryCalendarActionTypes: SelectPrimaryCalendarActionTypes,
selectPrimaryCalendar: selectPrimaryCalendar,
selectPrimaryCalendarSuccess: selectPrimaryCalendarSuccess,
selectPrimaryCalendarError: selectPrimaryCalendarError
});
var generateOAuthAntiCSRFCookieDuration = function generateOAuthAntiCSRFCookieDuration() {
var yearInSec = 365 * 24 * 60 * 60;
var antiCSRFCookieDuration = yearInSec / (24 * 60 * 60);
var expires = new Date(new Date().getTime() + yearInSec * antiCSRFCookieDuration);
return expires.toUTCString();
};
var generateRandomOAuthAntiCSRFToken = function generateRandomOAuthAntiCSRFToken() {
var _context;
return _concatInstanceProperty__default['default'](_context = Math.random().toString(36).substring(7)).call(_context, Math.random().toString(36).substring(7));
};
var STORAGE_KEY = 'usersConnectorStorage:v2';
/**
* Storage value related to web-billing.
*/
var SELECTED_FREQUENCY = 'SELECTED_FREQUENCY';
var storage = {
/**
* Reads and parses the user state from the local storage.
* Returns null if the local storage does not contain any state.
* @returns {object}
*/
loadState: function loadState() {
try {
var rawStorage = localStorage.getItem(STORAGE_KEY);
return JSON.parse(rawStorage);
} catch (e) {
return null;
}
},
/**
* Stores the partial user state in the local storage.
* @param {object} state The user state partial.
*/
storeState: function storeState(state) {
localStorage.setItem(STORAGE_KEY, _JSON$stringify__default['default'](state));
},
/**
* Cleans up the user state from the local storage.
*/
deleteState: function deleteState() {
localStorage.removeItem(STORAGE_KEY);
localStorage.removeItem(SELECTED_FREQUENCY);
},
/**
* Forces a cookie to expire by settings its expiration to now.
* @param {string} key The name of the cookie to remove
* @param {string?} options.domain The optional cookie domain
*/
deleteCookie: function deleteCookie(key) {
var _context, _context2, _context3, _context4;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var path = options.path || '/';
var domain = options.domain || ".".concat(_spliceInstanceProperty__default['default'](_context = document.location.hostname // always start with '.'
.split('.')).call(_context, -2) // remove everything except the TLD ('com') and the second level domain ('doodle')
.join('.'));
var expires = new Date(0).toGMTString(); // delete the cookie
document.cookie = _concatInstanceProperty__default['default'](_context2 = _concatInstanceProperty__default['default'](_context3 = _concatInstanceProperty__default['default'](_context4 = "".concat(key, "=;path=")).call(_context4, path, ";domain=")).call(_context3, domain, ";expires=")).call(_context2, expires);
},
/**
* Reads a cookie and returns its value. Defaults to undefined.
* @param {string} key The key of the cookie to retrieve
* @param {() -> string} [options.getCookie] An optional function used to read the cookie. `document.cookie` will be used otherwise.
* @returns {string|undefined}
*/
getCookie: function getCookie(key) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var cookies = (options.getCookie && options.getCookie() || document.cookie).split('; ');
return _reduceInstanceProperty__default['default'](cookies).call(cookies, function (result, cookie) {
var searchKey = "".concat(key, "=");
if (_indexOfInstanceProperty__default['default'](cookie).call(cookie, searchKey) === 0) {
return cookie.substring(searchKey.length);
}
return result;
}, undefined);
},
/**
* Sets a cookie with key `oauth_anti_csrf_token_cookie` and the given token as value.
* @param {string} token The token value
* @param {string} domain The domain in which to set the cookie
*/
setOAuthAntiCSRFTokenCookie: function setOAuthAntiCSRFTokenCookie(token, domain) {
var _context5;
var expires = generateOAuthAntiCSRFCookieDuration();
var cookie = _concatInstanceProperty__default['default'](_context5 = "oauth_anti_csrf_token_cookie=".concat(token, ";expires=")).call(_context5, expires, ";path=/");
if (domain) {
cookie += ";domain=".concat(encodeURIComponent(domain));
}
document.cookie = cookie;
},
/**
* Sets a cookie with key `token` and the given token as value.
* @param {string} token The token value
* @param {string} domain The domain in which to set the cookie
*/
setAntiCSRFTokenCookie: function setAntiCSRFTokenCookie(token, domain) {
// we delete the domain-less cookie, just in case
document.cookie = 'token=DumpMe;max-age=-1';
var cookie = "token=".concat(token, ";path=/;Secure;SameSite=Lax");
if (domain) {
cookie += ";domain=".concat(encodeURIComponent(domain));
}
document.cookie = cookie;
}
};
var empty = {
loading: false,
error: null,
data: {},
theme: {
backgroundImage: {
url: null
},
logoImage: {
url: null
},
backgroundColor: null,
website: null,
backgroundTiling: false
},
branding: {
companyName: '',
mandatorPrefix: '',
logoUrl: '',
companyWebsite: '',
backgroundUrl: '',
tileBackground: false,
backgroundColor: ''
},
resendActivation: {
email: '',
password: '',
loading: false,
error: false,
info: false
}
};
/**
* Creates an initial state object containing the user state
*
* @param {Object} options
* @param {string} options.domain For mounting this state under a different key in redux. Default: `user`.
* @param {Object} options.initialState override the initial state
*
* @example
* import { createState as createUserState } from '@doodle/users-api-connector';
*
* const initialState = {
* ...createUserState(), // providing the state under the `domain` key
* };
* const store = createStore(rootReducer, initialState, enhancers);
*/
var createState = function createState() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _defineProperty__default['default']({}, options.domain || 'user', options.initialState || _Object$assign__default['default']({}, empty, storage.loadState()));
};
function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default['default'](_context = ownKeys$1(Object(source), true)).call(_context, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$1(Object(source))).call(_context2, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var reducer = function reducer() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : empty;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case ActionTypes.LOAD_USER:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
error: null,
loading: true
});
case ActionTypes.USER_LOADED:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
data: action.user,
loading: false,
error: null
});
case ActionTypes.USER_LOAD_FAILED:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
data: {},
// clear data
error: action.error,
loading: false
});
case SettingsActionTypes.UPDATE_AVATAR_LOCALLY:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
data: _objectSpread$1(_objectSpread$1({}, state.data), {}, {
avatarSmallUrl: action.avatar,
avatarLargeUrl: action.avatar
})
});
case ActionTypes.LOAD_THEME_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
theme: _objectSpread$1(_objectSpread$1({}, empty.theme), action.theme)
});
case ActionTypes.LOAD_BRANDING_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1({}, state.branding), action.branding)
});
case SettingsActionTypes.SAVE_BRANDING_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1(_objectSpread$1({}, state.branding), action.branding), {}, {
tileBackground: action.branding.tileBackground || false
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
backgroundTiling: action.branding.tileBackground || false
})
});
case SettingsActionTypes.SAVE_TILE_BACKGROUND:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1({}, state.branding), {}, {
tileBackground: action.data.tileBackground || false
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
backgroundTiling: action.data.tileBackground || false
})
});
case SettingsActionTypes.SAVE_TILE_BACKGROUND_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1(_objectSpread$1({}, state.branding), action.branding), {}, {
tileBackground: action.branding.tileBackground || false
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
backgroundTiling: action.branding.tileBackground || false
})
});
case SettingsActionTypes.SAVE_BACKGROUND_COLOR:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1({}, state.branding), {}, {
backgroundColor: action.data.backgroundColor
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
backgroundColor: action.data.backgroundColor
})
});
case SettingsActionTypes.SAVE_BACKGROUND_COLOR_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1(_objectSpread$1({}, state.branding), action.branding), {}, {
tileBackground: action.branding.tileBackground || false
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
backgroundColor: action.branding.backgroundColor
})
});
case SettingsActionTypes.UPLOAD_LOGO_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1({}, state.branding), {}, {
logoUrl: action.payload.url
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
logoImage: {
url: action.payload.url
}
})
});
case SettingsActionTypes.UPLOAD_BACKGROUND_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1({}, state.branding), {}, {
backgroundUrl: action.payload.url
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
backgroundImage: {
url: action.payload.url
}
})
});
case SettingsActionTypes.REMOVE_LOGO_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1({}, state.branding), {}, {
logoUrl: ''
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
logoImage: {
url: null
}
})
});
case SettingsActionTypes.REMOVE_BACKGROUND_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
branding: _objectSpread$1(_objectSpread$1({}, state.branding), {}, {
backgroundUrl: ''
}),
theme: _objectSpread$1(_objectSpread$1({}, state.theme), {}, {
backgroundImage: {
url: null
}
})
});
case ActionTypes.RESEND_ACTIVATIONMAIL:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
resendActivation: _objectSpread$1(_objectSpread$1({}, state.resendActivation), {}, {
enabled: false,
loading: true,
error: false
})
});
case ActionTypes.RESEND_ACTIVATIONMAIL_SUCCEEDED:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
resendActivation: _objectSpread$1(_objectSpread$1({}, state.resendActivation), {}, {
loading: false,
error: false
})
});
case ActionTypes.RESEND_ACTIVATIONMAIL_ENABLED:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
resendActivation: _objectSpread$1(_objectSpread$1({}, state.resendActivation), {}, {
enabled: true
})
});
case ActionTypes.RESEND_ACTIVATIONMAIL_FAILED:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
resendActivation: _objectSpread$1(_objectSpread$1({}, state.resendActivation), {}, {
loading: false,
enabled: true,
error: true
})
});
case ActionTypes.LOGOUT:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
data: {},
branding: _objectSpread$1({}, empty.branding),
login: _objectSpread$1(_objectSpread$1({}, state.login), {}, {
password: {
value: ''
}
})
});
case SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR_SUCCESS:
return _objectSpread$1(_objectSpread$1({}, state), {}, {
data: _objectSpread$1(_objectSpread$1({}, state.data), {}, {
primaryCalendarAccountId: action.calendarId
})
});
default:
return state;
}
};
/**
* Creates a reducer that can be used with [`combineReducer`](http://redux.js.org/docs/api/combineReducers.html)
* @param {Object} options Reducer options
* @param {string} options.domain For mounting this reducer under a different key in redux. Default: `user`.
*
* @example
* // reducer.js
* import { createReducer as createUserReducer } from '@doodle/users-api-connector';
* import { combineReducers } from 'redux';
*
* export default combineReducers({
* ...createUserReducer(), // providing the reducer under the `domain` key
* })
*/
var createReducer = function createReducer() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _defineProperty__default['default']({}, options.domain || 'user', reducer);
};
var initialSettingsState = {
saveUser: {
loading: false,
error: null,
success: false
},
saveNewPassword: {
loading: false,
error: null
},
saveNewEmail: {
loading: false,
error: null,
success: false
},
deleteAccount: {
loading: false,
error: null
},
deleteThirdParty: {
loading: false,
error: null,
success: false
},
fetchPremiums: {
premiums: null,
loading: false,
error: null
},
loadBranding: {
premiums: null,
loading: false,
error: null
},
saveBranding: {
loading: false,
error: null,
success: false
},
saveTileBackground: {
loading: false,
error: null,
success: false
},
saveBackgroundColor: {
loading: false,
error: null,
success: false
},
uploadLogo: {
loading: false,
error: null,
success: false
},
removeLogo: {
loading: false,
error: null,
success: false
},
uploadBackground: {
loading: false,
error: null,
success: false
},
removeBackground: {
loading: false,
error: null,
success: false
},
deleteCalendar: {
loading: false,
error: null,
success: false
},
getDoodleFeed: {
value: '',
loading: false,
error: null,
success: false
},
connectDoodleFeed: {
loading: false,
error: null,
success: false
},
resetDoodleFeed: {
loading: false,
error: null,
success: false
},
deleteAddressBook: {
loading: false,
error: null,
success: false
},
saveAvatar: {
loading: false,
error: null,
success: false
},
deleteAvatar: {
loading: false,
error: null,
success: false
},
logoutApps: {
loading: false,
error: null,
success: false
},
getApps: {
loading: false,
error: null,
success: false
},
apps: [],
doodleFeed: ''
};
var createSettingsState = function createSettingsState() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _defineProperty__default['default']({}, options.domain || 'userSettings', options.initialState || _Object$assign__default['default']({}, initialSettingsState));
};
function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$2(Object(source), true)).call(_context2, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context3; _forEachInstanceProperty__default['default'](_context3 = ownKeys$2(Object(source))).call(_context3, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var settingsReducer = function settingsReducer() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialSettingsState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case SettingsActionTypes.DELETE_THIRD_PARTY_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteThirdParty: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.DELETE_THIRD_PARTY:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteThirdParty: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.DELETE_THIRD_PARTY_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteThirdParty: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.SAVE_USER:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveUser: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.SAVE_USER_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveUser: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.SAVE_USER_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveUser: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.SAVE_NEW_PASSWORD:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveNewPassword: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.SAVE_NEW_PASSWORD_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveNewPassword: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.SAVE_NEW_PASSWORD_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveNewPassword: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.SAVE_NEW_EMAIL:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveNewEmail: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.SAVE_NEW_EMAIL_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveNewEmail: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.SAVE_NEW_EMAIL_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveNewEmail: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.FETCH_PREMIUMS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
fetchPremiums: {
loading: true,
error: null
}
});
}
case SettingsActionTypes.FETCH_PREMIUMS_SUCCESS:
{
var _context;
return _objectSpread$2(_objectSpread$2({}, state), {}, {
fetchPremiums: {
premiums: _concatInstanceProperty__default['default'](_context = [{
id: 0,
name: 'doNotUsePremium'
}]).call(_context, _toConsumableArray__default['default'](action.premiums)),
loading: false,
error: null
}
});
}
case SettingsActionTypes.FETCH_PREMIUMS_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
fetchPremiums: {
error: action.error,
loading: false
}
});
}
case ActionTypes.LOAD_BRANDING:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
loadBranding: {
loading: true,
error: null,
success: false
}
});
}
case ActionTypes.LOAD_BRANDING_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
loadBranding: {
loading: false,
error: null,
success: true
}
});
}
case ActionTypes.LOAD_BRANDING_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
loadBranding: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.SAVE_BRANDING:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveBranding: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.SAVE_BRANDING_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveBranding: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.SAVE_BRANDING_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveBranding: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.SAVE_TILE_BACKGROUND:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveTileBackground: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.SAVE_TILE_BACKGROUND_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveTileBackground: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.SAVE_TILE_BACKGROUND_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveTileBackground: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.SAVE_BACKGROUND_COLOR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveBackgroundColor: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.SAVE_BACKGROUND_COLOR_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveBackgroundColor: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.SAVE_BACKGROUND_COLOR_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveBackgroundColor: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.UPLOAD_LOGO:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
uploadLogo: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.UPLOAD_LOGO_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
uploadLogo: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.UPLOAD_LOGO_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
uploadLogo: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.REMOVE_LOGO:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
removeLogo: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.REMOVE_LOGO_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
removeLogo: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.REMOVE_LOGO_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
removeLogo: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.UPLOAD_BACKGROUND:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
uploadBackground: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.UPLOAD_BACKGROUND_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
uploadBackground: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.UPLOAD_BACKGROUND_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
uploadBackground: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.REMOVE_BACKGROUND:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
removeBackground: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.REMOVE_BACKGROUND_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
removeBackground: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.REMOVE_BACKGROUND_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
removeBackground: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.DISMISS_BRANDING_NAGS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
uploadLogo: _objectSpread$2({}, initialSettingsState.uploadLogo),
removeLogo: _objectSpread$2({}, initialSettingsState.removeLogo),
uploadBackground: _objectSpread$2({}, initialSettingsState.uploadBackground),
removeBackground: _objectSpread$2({}, initialSettingsState.removeBackground),
saveBranding: _objectSpread$2({}, initialSettingsState.saveBranding),
loadBranding: _objectSpread$2({}, initialSettingsState.loadBranding)
});
}
case SettingsActionTypes.DELETE_ACCOUNT:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAccount: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.DELETE_ACCOUNT_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAccount: {
error: action.error,
loading: false,
success: false
}
});
}
case SettingsActionTypes.DELETE_ACCOUNT_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAccount: {
loading: false,
error: null,
success: true
}
});
}
// for resetting error when opening/closing modal dialogs:
case SettingsActionTypes.RESET_NAGS:
{
return _objectSpread$2(_objectSpread$2({}, initialSettingsState), {}, {
fetchPremiums: _objectSpread$2(_objectSpread$2({}, initialSettingsState.premiums), {}, {
premiums: state.fetchPremiums.premiums
}),
doodleFeed: state.doodleFeed
});
}
case SettingsActionTypes.DELETE_CALENDAR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteCalendar: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.DELETE_CALENDAR_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteCalendar: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.DELETE_CALENDAR_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteCalendar: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.GET_DOODLE_FEED:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
getDoodleFeed: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.GET_DOODLE_FEED_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
getDoodleFeed: {
loading: false,
error: null,
success: true
},
doodleFeed: action.feed
});
}
case SettingsActionTypes.GET_DOODLE_FEED_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
getDoodleFeed: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.CONNECT_DOODLE_FEED:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
connectDoodleFeed: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.CONNECT_DOODLE_FEED_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
connectDoodleFeed: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.CONNECT_DOODLE_FEED_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
connectDoodleFeed: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.RESET_DOODLE_FEED:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
resetDoodleFeed: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.RESET_DOODLE_FEED_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
resetDoodleFeed: {
loading: false,
error: null,
success: true
},
doodleFeed: action.feed
});
}
case SettingsActionTypes.RESET_DOODLE_FEED_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
resetDoodleFeed: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.DELETE_ADDRESS_BOOK:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAddressBook: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.DELETE_ADDRESS_BOOK_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAddressBook: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.DELETE_ADDRESS_BOOK_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAddressBook: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.LOGOUT_APPS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
logoutApps: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.LOGOUT_APPS_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
logoutApps: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.LOGOUT_APPS_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
logoutApps: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.GET_APPS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
getApps: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.GET_APPS_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
getApps: {
loading: false,
error: null,
success: true
},
apps: action.apps
});
}
case SettingsActionTypes.GET_APPS_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
getApps: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.SAVE_AVATAR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveAvatar: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.SAVE_AVATAR_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveAvatar: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.SAVE_AVATAR_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveAvatar: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.DELETE_AVATAR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAvatar: {
loading: true,
error: null,
success: false
}
});
}
case SettingsActionTypes.DELETE_AVATAR_SUCCESS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAvatar: {
loading: false,
error: null,
success: true
}
});
}
case SettingsActionTypes.DELETE_AVATAR_ERROR:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
deleteAvatar: {
loading: false,
error: action.error,
success: false
}
});
}
case SettingsActionTypes.DISMISS_NOTIFICATIONS_NAGS:
case SettingsActionTypes.DISMISS_PREMIUM_NAGS:
case SettingsActionTypes.DISMISS_CALENDARS_NAGS:
{
return _objectSpread$2(_objectSpread$2({}, state), {}, {
saveUser: _objectSpread$2({}, initialSettingsState.saveUser)
});
}
default:
return state;
}
};
var createSettingsReducer = function createSettingsReducer() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _defineProperty__default['default']({}, options.domain || 'userSettings', settingsReducer);
};
var initialConnectCalendarState = {
connectCalendar: {
loading: false,
error: null,
success: false,
provider: ''
},
connectAddressBook: {
loading: false,
error: null,
success: false,
provider: ''
}
};
var createConnectCalendarState = function createConnectCalendarState() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _defineProperty__default['default']({}, options.domain || 'userConnectCalendar', options.initialState);
};
function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default['default'](_context = ownKeys$3(Object(source), true)).call(_context, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$3(Object(source))).call(_context2, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var connectCalendarReducer = function connectCalendarReducer() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialConnectCalendarState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case ConnectCalendarActionTypes.CONNECT_CALENDAR:
{
return _objectSpread$3(_objectSpread$3({}, state), {}, {
connectCalendar: {
loading: true,
error: null,
success: false,
provider: action.provider
}
});
}
case ConnectCalendarActionTypes.CONNECT_CALENDAR_SUCCESS:
{
return _objectSpread$3(_objectSpread$3({}, state), {}, {
connectCalendar: _objectSpread$3(_objectSpread$3({}, state.connectCalendar), {}, {
loading: false,
error: null,
success: true
})
});
}
case ConnectCalendarActionTypes.CONNECT_CALENDAR_ERROR:
{
return _objectSpread$3(_objectSpread$3({}, state), {}, {
connectCalendar: _objectSpread$3(_objectSpread$3({}, state.connectCalendar), {}, {
loading: false,
error: action.error,
success: false
})
});
}
case ConnectCalendarActionTypes.CONNECT_ADDRESS_BOOK:
{
return _objectSpread$3(_objectSpread$3({}, state), {}, {
connectAddressBook: {
loading: true,
error: null,
success: false,
provider: action.provider
}
});
}
case ConnectCalendarActionTypes.CONNECT_ADDRESS_BOOK_SUCCESS:
{
return _objectSpread$3(_objectSpread$3({}, state), {}, {
connectAddressBook: _objectSpread$3(_objectSpread$3({}, state.connectAddressBook), {}, {
loading: false,
error: null,
success: true
})
});
}
case ConnectCalendarActionTypes.CONNECT_ADDRESS_BOOK_ERROR:
{
return _objectSpread$3(_objectSpread$3({}, state), {}, {
connectAddressBook: _objectSpread$3(_objectSpread$3({}, state.connectAddressBook), {}, {
loading: false,
error: action.error,
success: false
})
});
}
// for resetting error when opening/closing modal dialogs:
case ConnectCalendarActionTypes.RESET_CONNECT_CALENDAR_NAGS:
{
return _objectSpread$3({}, initialConnectCalendarState);
}
default:
return state;
}
};
var createConnectCalendarReducer = function createConnectCalendarReducer() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _defineProperty__default['default']({}, options.domain || 'userConnectCalendar', connectCalendarReducer);
};
var initialSelectPrimaryCalendarState = {
selectPrimaryCalendar: {
loading: false,
error: null,
success: false,
calendarId: ''
}
};
function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default['default'](_context = ownKeys$4(Object(source), true)).call(_context, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$4(Object(source))).call(_context2, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var selectPrimaryCalendarReducer = function selectPrimaryCalendarReducer() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialSelectPrimaryCalendarState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR:
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
selectPrimaryCalendar: {
loading: true,
error: null,
success: false,
calendarId: action.calendarId
}
});
}
case SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR_SUCCESS:
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
selectPrimaryCalendar: _objectSpread$4(_objectSpread$4({}, state.selectPrimaryCalendar), {}, {
loading: false,
error: null,
success: true
})
});
}
case SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR_ERROR:
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
selectPrimaryCalendar: _objectSpread$4(_objectSpread$4({}, state.selectPrimaryCalendar), {}, {
loading: false,
error: action.error,
success: false
})
});
}
default:
return state;
}
};
var createSelectPrimaryCalendarReducer = function createSelectPrimaryCalendarReducer() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _defineProperty__default['default']({}, options.domain || 'userSelectPrimaryCalendar', selectPrimaryCalendarReducer);
};
var CONSTANTS = {
errorTypes: {
invalid: 'invalid',
unknown: 'unknown',
unreachable: 'unreachable',
missing: 'missing',
tooLong: 'too-long',
tooShort: 'too-short',
alreadyUsed: 'already-used',
invalidWithThirdParty: 'invalid-with-thirdparty',
notActivated: 'not-activated'
},
userType: {
premium: 'premium user',
free: 'free user'
},
userPlan: {
business: 'business',
indvidual: 'individual',
free: 'free',
trial: 'TRIAL'
},
timeZone: {
undefined: 'floating'
}
};
function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$5(Object(source), true)).call(_context2, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context3; _forEachInstanceProperty__default['default'](_context3 = ownKeys$5(Object(source))).call(_context3, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var errorHandler = function errorHandler(error) {
if (error.details && error.details.errors) {
var _context;
// transform errors to lower-case
var errors = _reduceInstanceProperty__default['default'](_context = _Object$keys__default['default'](error.details.errors)).call(_context, function (memo, key) {
return _Object$assign__default['default'](memo, _defineProperty__default['default']({}, key.toLowerCase(), error.details.errors[key].toLowerCase().replace(/_/g, '-')));
}, {});
throw errors;
}
var unknown = _objectSpread$5(_objectSpread$5({}, error), {}, {
api: CONSTANTS.errorTypes.unknown
});
if (error.errorType === 'UNKNOWN') {
throw unknown;
}
if (!error.response) {
var unreachable = {
api: CONSTANTS.errorTypes.unreachable
};
throw unreachable;
}
throw unknown;
};
/**
* Fetch response handler
*/
var responseHandler = function responseHandler(response) {
var headers = response.headers;
var contentType = headers.get('content-type');
if (contentType && _includesInstanceProperty__default['default'](contentType).call(contentType, 'application/json')) {
if (response.status >= 200 && response.status < 300) {
return response.json();
}
return response.json().then(errorHandler);
}
if (response.status >= 200 && response.status < 300) {
return response.text();
}
return response.text().then(errorHandler);
};
function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty__default['default'](_context3 = ownKeys$6(Object(source), true)).call(_context3, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context4; _forEachInstanceProperty__default['default'](_context4 = ownKeys$6(Object(source))).call(_context4, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var API = {
me: function me(authToken, options) {
var fetchOptions = {
headers: _objectSpread$6({
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}, options.headers)
};
if (options.method) {
fetchOptions.method = options.method;
}
if (options.body) {
fetchOptions.body = options.body;
}
return fetch("".concat(options.url, "/me"), fetchOptions)["catch"](errorHandler).then(responseHandler);
},
loadTheme: function loadTheme(authToken, mandatorId, options) {
var _context;
return fetch(_concatInstanceProperty__default['default'](_context = "".concat(options.premiumUrl, "/themes/")).call(_context, mandatorId), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
loadBranding: function loadBranding(authToken, mandatorId, options) {
var _context2;
return fetch(_concatInstanceProperty__default['default'](_context2 = "".concat(options.url, "/me/branding/")).call(_context2, mandatorId), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
resendActivation: function resendActivation(id, email, options) {
return fetch("".concat(options.url, "/resend-activation"), {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: _JSON$stringify__default['default']({
id: id,
email: email
})
})["catch"](errorHandler).then(responseHandler);
},
logout: function logout(options) {
return fetch("".concat(options.url, "/logout"), {
method: 'POST',
credentials: 'include'
});
}
};
var _marked = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(storeStateData),
_marked2 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(clearLocalUserData),
_marked3 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchStoreChanges);
var WIZARD_STATE = 'wizardState';
/**
* Persists part of the user state in the local storage, so that it gets used as initial
* state on next load.
* Note: DON'T STORE ANY SENSITIVE USER INFORMATION SUCH AS:
* - name
* - email
* - password
* - access token[^1]
*
* [^1]: We need to store the access token because the current authentication mechanism requires
* it to be there :(
*
* @param {string} options.domain The optional domain of the user store.
*/
function storeStateData(options) {
var state, theme;
return _regeneratorRuntime__default['default'].wrap(function storeStateData$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return effects.select(function (globalState) {
return globalState[options.domain || 'user'];
});
case 3:
state = _context.sent;
theme = state.theme;
_context.next = 7;
return effects.call(storage.storeState, {
theme: theme
});
case 7:
_context.next = 11;
break;
case 9:
_context.prev = 9;
_context.t0 = _context["catch"](0);
case 11:
case "end":
return _context.stop();
}
}
}, _marked, null, [[0, 9]]);
}
/**
* Removes user-specific data from cookies, local and session storage.
*/
function clearLocalUserData(options) {
return _regeneratorRuntime__default['default'].wrap(function clearLocalUserData$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return effects.call(API.logout, options);
case 2:
try {
storage.deleteCookie(WIZARD_STATE, {
domain: options.cookieDomain
});
sessionStorage.removeItem(WIZARD_STATE);
storage.deleteState();
} catch (e) {// fail silently for storage
}
_context2.next = 5;
return effects.put(logoutFinished());
case 5:
case "end":
return _context2.stop();
}
}
}, _marked2);
}
var DEFAULT_WATCH_STORE_OPTIONS = {
clearStorageOnBoot: false
};
/**
* @param {boolean} options.clearStorageOnBoot whether to clear the user data from local storage on boot
*/
function watchStoreChanges() {
var options,
_args3 = arguments;
return _regeneratorRuntime__default['default'].wrap(function watchStoreChanges$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : DEFAULT_WATCH_STORE_OPTIONS;
if (options.clearStorageOnBoot === true) {
// Clears the local storage so that a possibly invalid access token is removed. This should only
// be done on a login/signup frontend, which would call the endpoint /access-token-from-cookie.
// The reason to do this is that we don't do any check on the validity of the access token. If
// the user is redirected to another frontend (i.e. dashboard) and the access token is not valid,
// she would be redirected again to the login frontend, causing an endless loop. So always make
// sure that, on a login screen, the access token is reset and refreshed using the authentication
// cookies. If the access token cannot be refreshed with the cookies, it means that the cookies
// are invalid or expired, and the user needs to login again.
storage.deleteState();
}
_context3.next = 4;
return effects.all([effects.takeLatest([ActionTypes.LOAD_THEME_SUCCESS, ActionTypes.LOAD_THEME_ERROR, ActionTypes.LOAD_BRANDING_SUCCESS, ActionTypes.LOAD_BRANDING_ERROR, SettingsActionTypes.UPLOAD_BACKGROUND_SUCCESS, SettingsActionTypes.UPLOAD_LOGO_SUCCESS, SettingsActionTypes.REMOVE_BACKGROUND_SUCCESS, SettingsActionTypes.REMOVE_LOGO_SUCCESS, SettingsActionTypes.SAVE_BACKGROUND_COLOR_SUCCESS, SettingsActionTypes.SAVE_TILE_BACKGROUND_SUCCESS, SettingsActionTypes.SAVE_BRANDING_SUCCESS, ActionTypes.LOGOUT], storeStateData, options), effects.takeLatest(ActionTypes.LOGOUT, clearLocalUserData, options)]);
case 4:
case "end":
return _context3.stop();
}
}
}, _marked3);
}
var _marked$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLoadUser),
_marked2$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLoadTheme),
_marked3$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLoadBranding),
_marked4 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLoadUser),
_marked5 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLoadTheme),
_marked6 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLoadBranding);
function onLoadUser(options, _ref) {
var authToken, user;
return _regeneratorRuntime__default['default'].wrap(function onLoadUser$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
authToken = _ref.authToken;
_context.prev = 1;
_context.next = 4;
return effects.call(API.me, authToken, options);
case 4:
user = _context.sent;
_context.next = 12;
break;
case 7:
_context.prev = 7;
_context.t0 = _context["catch"](1);
_context.next = 11;
return effects.put(userLoadFailed(_context.t0));
case 11:
return _context.abrupt("return");
case 12:
_context.next = 14;
return effects.put(userLoaded(user));
case 14:
if (!(user.premium && user.premium.active && user.premium.active.id)) {
_context.next = 17;
break;
}
_context.next = 17;
return effects.put(loadTheme(authToken));
case 17:
if (!(user.mandator && user.mandator.id)) {
_context.next = 20;
break;
}
_context.next = 20;
return effects.put(loadBranding(authToken));
case 20:
case "end":
return _context.stop();
}
}
}, _marked$1, null, [[1, 7]]);
}
function onLoadTheme(options, _ref2) {
var authToken, userData, mandatorId, theme;
return _regeneratorRuntime__default['default'].wrap(function onLoadTheme$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
authToken = _ref2.authToken;
_context2.prev = 1;
_context2.next = 4;
return effects.select(function (state) {
return state.user.data;
});
case 4:
userData = _context2.sent;
mandatorId = userData.premium && userData.premium.active && userData.premium.active.id;
_context2.next = 8;
return effects.call(API.loadTheme, authToken, mandatorId, options);
case 8:
theme = _context2.sent;
_context2.next = 11;
return effects.put(loadThemeSuccess(theme));
case 11:
_context2.next = 17;
break;
case 13:
_context2.prev = 13;
_context2.t0 = _context2["catch"](1);
_context2.next = 17;
return effects.put(loadThemeError(_context2.t0));
case 17:
case "end":
return _context2.stop();
}
}
}, _marked2$1, null, [[1, 13]]);
}
function onLoadBranding(options, _ref3) {
var authToken, userData, mandatorId, branding;
return _regeneratorRuntime__default['default'].wrap(function onLoadBranding$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
authToken = _ref3.authToken;
_context3.prev = 1;
_context3.next = 4;
return effects.select(function (state) {
return state.user.data;
});
case 4:
userData = _context3.sent;
mandatorId = userData.mandator.id;
_context3.next = 8;
return effects.call(API.loadBranding, authToken, mandatorId, options);
case 8:
branding = _context3.sent;
_context3.next = 11;
return effects.put(loadBrandingSuccess(branding));
case 11:
_context3.next = 17;
break;
case 13:
_context3.prev = 13;
_context3.t0 = _context3["catch"](1);
_context3.next = 17;
return effects.put(loadBrandingError(_context3.t0));
case 17:
case "end":
return _context3.stop();
}
}
}, _marked3$1, null, [[1, 13]]);
}
function watchLoadUser(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLoadUser$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return effects.takeLatest(ActionTypes.LOAD_USER, onLoadUser, options);
case 2:
case "end":
return _context4.stop();
}
}
}, _marked4);
}
function watchLoadTheme(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLoadTheme$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
_context5.next = 2;
return effects.takeLatest(ActionTypes.LOAD_THEME, onLoadTheme, options);
case 2:
case "end":
return _context5.stop();
}
}
}, _marked5);
}
function watchLoadBranding(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLoadBranding$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
_context6.next = 2;
return effects.takeLatest(ActionTypes.LOAD_BRANDING, onLoadBranding, options);
case 2:
case "end":
return _context6.stop();
}
}
}, _marked6);
}
var path = '/api/users';
var API$1 = {
saveUser: function saveUser(authToken, data, options) {
return fetch("".concat(options.url || path, "/me"), {
method: 'PUT',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer ".concat(authToken)
},
body: _JSON$stringify__default['default'](data)
})["catch"](errorHandler).then(responseHandler);
},
saveAvatar: function saveAvatar(authToken, data, type, options) {
return fetch("".concat(options.url || path, "/me/avatar"), {
method: 'POST',
headers: {
'Content-Type': type,
Authorization: "Bearer ".concat(authToken)
},
body: data
})["catch"](errorHandler).then(responseHandler);
},
deleteAvatar: function deleteAvatar(authToken, options) {
return fetch("".concat(options.url || path, "/me/avatar"), {
method: 'DELETE',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
fetchPremiums: function fetchPremiums(authToken, options) {
return fetch("".concat(options.url || path, "/me/mandators"), {
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
deleteThirdParty: function deleteThirdParty(authToken, id, options) {
var _context;
return fetch(_concatInstanceProperty__default['default'](_context = "".concat(options.url || path, "/me/thirdpartyaccounts/")).call(_context, id), {
method: 'DELETE',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
deleteAccount: function deleteAccount(authToken, password, options) {
return fetch("".concat(options.url || path, "/me"), {
method: 'DELETE',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken),
'Content-Type': 'application/json'
},
body: _JSON$stringify__default['default'](password)
})["catch"](errorHandler).then(responseHandler);
},
deleteCalendar: function deleteCalendar(authToken, id, options) {
var _context2;
return fetch(_concatInstanceProperty__default['default'](_context2 = "".concat(options.url || path, "/me/calendars/")).call(_context2, id), {
method: 'DELETE',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
getDoodleFeed: function getDoodleFeed(authToken, options) {
return fetch("".concat(options.url || path, "/me/calendars/icsfeed"), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
connectDoodleFeed: function connectDoodleFeed(authToken, url, options) {
return fetch("".concat(options.url || path, "/me/calendars/icsfeed"), {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer ".concat(authToken)
},
body: _JSON$stringify__default['default'](url)
})["catch"](errorHandler).then(responseHandler);
},
resetDoodleFeed: function resetDoodleFeed(authToken, options) {
return fetch("".concat(options.url || path, "/me/calendars/icsfeed"), {
method: 'PUT',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
deleteAddressBook: function deleteAddressBook(authToken, id, options) {
var _context3;
return fetch(_concatInstanceProperty__default['default'](_context3 = "".concat(options.url || path, "/me/addressbooks/")).call(_context3, id), {
method: 'DELETE',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
logoutApps: function logoutApps(authToken, options) {
return fetch("".concat(options.url || path, "/me/tokens"), {
method: 'DELETE',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
getApps: function getApps(authToken, options) {
return fetch("".concat(options.url || path, "/me/tokens"), {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
saveBranding: function saveBranding(authToken, data, options) {
return fetch("".concat(options.url || path, "/me/branding"), {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer ".concat(authToken)
},
body: _JSON$stringify__default['default'](data)
})["catch"](errorHandler).then(responseHandler);
},
uploadLogo: function uploadLogo(authToken, data, type, options) {
return fetch("".concat(options.url || path, "/me/branding/logo"), {
method: 'POST',
headers: {
'Content-Type': type,
Authorization: "Bearer ".concat(authToken)
},
body: data
})["catch"](errorHandler).then(responseHandler);
},
removeLogo: function removeLogo(authToken, options) {
return fetch("".concat(options.url || path, "/me/branding/logo"), {
method: 'DELETE',
headers: {
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
},
uploadBackground: function uploadBackground(authToken, data, type, options) {
return fetch("".concat(options.url || path, "/me/branding/background"), {
method: 'POST',
headers: {
'Content-Type': type,
Authorization: "Bearer ".concat(authToken)
},
body: data
})["catch"](errorHandler).then(responseHandler);
},
removeBackground: function removeBackground(authToken, options) {
return fetch("".concat(options.url || path, "/me/branding/background"), {
method: 'DELETE',
headers: {
Authorization: "Bearer ".concat(authToken)
}
})["catch"](errorHandler).then(responseHandler);
}
};
function ownKeys$7(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context48; _forEachInstanceProperty__default['default'](_context48 = ownKeys$7(Object(source), true)).call(_context48, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context49; _forEachInstanceProperty__default['default'](_context49 = ownKeys$7(Object(source))).call(_context49, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var _marked$2 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onNewPasswordSave),
_marked2$2 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onNewEmailSave),
_marked3$2 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onUserSave),
_marked4$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onAccountDelete),
_marked5$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onThirdPartyDelete),
_marked6$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onFetchPremiums),
_marked7 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onSaveBranding),
_marked8 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLogoUpload),
_marked9 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLogoRemove),
_marked10 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onBackgroundUpload),
_marked11 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onBackgroundRemove),
_marked12 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onSaveTileBackground),
_marked13 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onSaveBackgroundColor),
_marked14 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLogout),
_marked15 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onDeleteCalendar),
_marked16 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onGetDoodleFeed),
_marked17 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onConnectDoodleFeed),
_marked18 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onResetDoodleFeed),
_marked19 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onDeleteAddressBook),
_marked20 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLogoutApps),
_marked21 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onGetApps),
_marked22 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onSaveAvatar),
_marked23 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onDeleteAvatar),
_marked24 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSaveNewPassword),
_marked25 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSaveEmail),
_marked26 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSaveUser),
_marked27 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchDeleteAccount),
_marked28 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchDeleteThirdParty),
_marked29 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchFetchPremiums),
_marked30 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSaveBranding),
_marked31 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLogoUpload),
_marked32 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLogoRemove),
_marked33 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchBackgroundUpload),
_marked34 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchBackgroundRemove),
_marked35 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLogout),
_marked36 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchDeleteCalendar),
_marked37 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchGetDoodleFeed),
_marked38 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchConnectDoodleFeed),
_marked39 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchResetDoodleFeed),
_marked40 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchDeleteAddressBook),
_marked41 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLogoutApps),
_marked42 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchGetApps),
_marked43 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSaveAvatar),
_marked44 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchDeleteAvatar),
_marked45 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSaveTileBackground),
_marked46 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSaveBackgroundColor),
_marked47 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(settingsSaga);
function onNewPasswordSave(options, action) {
var authToken, _action$payload, newPassword, currentPassword;
return _regeneratorRuntime__default['default'].wrap(function onNewPasswordSave$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
authToken = action.authToken;
_action$payload = action.payload, newPassword = _action$payload.newPassword, currentPassword = _action$payload.currentPassword;
_context.next = 5;
return effects.call(API$1.saveUser, authToken, {
newPassword: newPassword,
password: currentPassword
}, options);
case 5:
_context.next = 7;
return effects.put(saveNewPasswordSuccess());
case 7:
_context.next = 13;
break;
case 9:
_context.prev = 9;
_context.t0 = _context["catch"](0);
_context.next = 13;
return effects.put(saveNewPasswordError(_context.t0));
case 13:
case "end":
return _context.stop();
}
}
}, _marked$2, null, [[0, 9]]);
}
function onNewEmailSave(options, action) {
var authToken, newEmail;
return _regeneratorRuntime__default['default'].wrap(function onNewEmailSave$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
authToken = action.authToken;
newEmail = action.newEmail;
_context2.next = 5;
return effects.call(API$1.saveUser, authToken, {
newEmail: newEmail
}, options);
case 5:
_context2.next = 7;
return effects.put(saveNewEmailSuccess());
case 7:
_context2.next = 13;
break;
case 9:
_context2.prev = 9;
_context2.t0 = _context2["catch"](0);
_context2.next = 13;
return effects.put(saveNewEmailError(_context2.t0));
case 13:
case "end":
return _context2.stop();
}
}
}, _marked2$2, null, [[0, 9]]);
}
function onUserSave(options, action) {
var authToken;
return _regeneratorRuntime__default['default'].wrap(function onUserSave$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
authToken = action.authToken;
_context3.next = 4;
return effects.call(API$1.saveUser, authToken, action.data, options);
case 4:
_context3.next = 6;
return effects.put(saveUserSuccess());
case 6:
_context3.next = 12;
break;
case 8:
_context3.prev = 8;
_context3.t0 = _context3["catch"](0);
_context3.next = 12;
return effects.put(saveUserError(_context3.t0));
case 12:
case "end":
return _context3.stop();
}
}
}, _marked3$2, null, [[0, 8]]);
}
function onAccountDelete(options, action) {
var password, authToken;
return _regeneratorRuntime__default['default'].wrap(function onAccountDelete$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.prev = 0;
password = action.password, authToken = action.authToken;
_context4.next = 4;
return effects.call(API$1.deleteAccount, authToken, {
password: password
}, options);
case 4:
_context4.next = 6;
return effects.put(deleteAccountSuccess());
case 6:
_context4.next = 12;
break;
case 8:
_context4.prev = 8;
_context4.t0 = _context4["catch"](0);
_context4.next = 12;
return effects.put(deleteAccountError(_context4.t0));
case 12:
case "end":
return _context4.stop();
}
}
}, _marked4$1, null, [[0, 8]]);
}
function onThirdPartyDelete(options, action) {
var id, authToken, thirdPartyAccounts, account;
return _regeneratorRuntime__default['default'].wrap(function onThirdPartyDelete$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
_context5.prev = 0;
id = action.id, authToken = action.authToken;
_context5.next = 4;
return effects.select(function (state) {
return state.user.data.thirdPartyAccounts;
});
case 4:
thirdPartyAccounts = _context5.sent;
account = _findInstanceProperty__default['default'](thirdPartyAccounts).call(thirdPartyAccounts, function (anAccount) {
return anAccount.id === id;
});
_context5.next = 8;
return effects.call(API$1.deleteThirdParty, authToken, id, options);
case 8:
_context5.next = 10;
return effects.put(deleteThirdPartySuccess(account));
case 10:
_context5.next = 12;
return effects.put(loadUser(authToken));
case 12:
_context5.next = 18;
break;
case 14:
_context5.prev = 14;
_context5.t0 = _context5["catch"](0);
_context5.next = 18;
return effects.put(deleteThirdPartyError(_context5.t0));
case 18:
case "end":
return _context5.stop();
}
}
}, _marked5$1, null, [[0, 14]]);
}
function onFetchPremiums(options, _ref) {
var authToken, premiums;
return _regeneratorRuntime__default['default'].wrap(function onFetchPremiums$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
authToken = _ref.authToken;
_context6.prev = 1;
_context6.next = 4;
return effects.call(API$1.fetchPremiums, authToken, options);
case 4:
premiums = _context6.sent;
_context6.next = 7;
return effects.put(fetchPremiumsSuccess(premiums));
case 7:
_context6.next = 13;
break;
case 9:
_context6.prev = 9;
_context6.t0 = _context6["catch"](1);
_context6.next = 13;
return effects.put(fetchPremiumsError(_context6.t0));
case 13:
case "end":
return _context6.stop();
}
}
}, _marked6$1, null, [[1, 9]]);
}
function onSaveBranding(options, action) {
var authToken, data, branding;
return _regeneratorRuntime__default['default'].wrap(function onSaveBranding$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
_context7.prev = 0;
authToken = action.authToken, data = action.data;
_context7.next = 4;
return effects.call(API$1.saveBranding, authToken, data, options);
case 4:
branding = _context7.sent;
_context7.next = 7;
return effects.put(saveBrandingSuccess(branding));
case 7:
_context7.next = 13;
break;
case 9:
_context7.prev = 9;
_context7.t0 = _context7["catch"](0);
_context7.next = 13;
return effects.put(saveBrandingError(_context7.t0));
case 13:
case "end":
return _context7.stop();
}
}
}, _marked7, null, [[0, 9]]);
}
function onLogoUpload(options, action) {
var authToken, _action$payload2, file, fileType, response;
return _regeneratorRuntime__default['default'].wrap(function onLogoUpload$(_context8) {
while (1) {
switch (_context8.prev = _context8.next) {
case 0:
_context8.prev = 0;
authToken = action.authToken;
_action$payload2 = action.payload, file = _action$payload2.file, fileType = _action$payload2.fileType;
_context8.next = 5;
return effects.call(API$1.uploadLogo, authToken, file, fileType, options);
case 5:
response = _context8.sent;
_context8.next = 8;
return effects.put(uploadLogoSuccess(response));
case 8:
_context8.next = 14;
break;
case 10:
_context8.prev = 10;
_context8.t0 = _context8["catch"](0);
_context8.next = 14;
return effects.put(uploadLogoError(_context8.t0));
case 14:
case "end":
return _context8.stop();
}
}
}, _marked8, null, [[0, 10]]);
}
function onLogoRemove(options, _ref2) {
var authToken;
return _regeneratorRuntime__default['default'].wrap(function onLogoRemove$(_context9) {
while (1) {
switch (_context9.prev = _context9.next) {
case 0:
authToken = _ref2.authToken;
_context9.prev = 1;
_context9.next = 4;
return effects.call(API$1.removeLogo, authToken, options);
case 4:
_context9.next = 6;
return effects.put(removeLogoSuccess());
case 6:
_context9.next = 12;
break;
case 8:
_context9.prev = 8;
_context9.t0 = _context9["catch"](1);
_context9.next = 12;
return effects.put(removeLogoError(_context9.t0));
case 12:
case "end":
return _context9.stop();
}
}
}, _marked9, null, [[1, 8]]);
}
function onBackgroundUpload(options, action) {
var authToken, _action$payload3, file, fileType, response;
return _regeneratorRuntime__default['default'].wrap(function onBackgroundUpload$(_context10) {
while (1) {
switch (_context10.prev = _context10.next) {
case 0:
_context10.prev = 0;
authToken = action.authToken;
_action$payload3 = action.payload, file = _action$payload3.file, fileType = _action$payload3.fileType;
_context10.next = 5;
return effects.call(API$1.uploadBackground, authToken, file, fileType, options);
case 5:
response = _context10.sent;
_context10.next = 8;
return effects.put(uploadBackgroundSuccess(response));
case 8:
_context10.next = 14;
break;
case 10:
_context10.prev = 10;
_context10.t0 = _context10["catch"](0);
_context10.next = 14;
return effects.put(uploadBackgroundError(_context10.t0));
case 14:
case "end":
return _context10.stop();
}
}
}, _marked10, null, [[0, 10]]);
}
function onBackgroundRemove(options, _ref3) {
var authToken;
return _regeneratorRuntime__default['default'].wrap(function onBackgroundRemove$(_context11) {
while (1) {
switch (_context11.prev = _context11.next) {
case 0:
authToken = _ref3.authToken;
_context11.prev = 1;
_context11.next = 4;
return effects.call(API$1.removeBackground, authToken, options);
case 4:
_context11.next = 6;
return effects.put(removeBackgroundSuccess());
case 6:
_context11.next = 12;
break;
case 8:
_context11.prev = 8;
_context11.t0 = _context11["catch"](1);
_context11.next = 12;
return effects.put(removeBackgroundError(_context11.t0));
case 12:
case "end":
return _context11.stop();
}
}
}, _marked11, null, [[1, 8]]);
}
function onSaveTileBackground(options, action) {
var data, authToken, branding;
return _regeneratorRuntime__default['default'].wrap(function onSaveTileBackground$(_context12) {
while (1) {
switch (_context12.prev = _context12.next) {
case 0:
_context12.prev = 0;
data = action.data, authToken = action.authToken;
_context12.next = 4;
return effects.call(API$1.saveBranding, authToken, data, options);
case 4:
branding = _context12.sent;
_context12.next = 7;
return effects.put(saveTileBackgroundSuccess(branding));
case 7:
_context12.next = 13;
break;
case 9:
_context12.prev = 9;
_context12.t0 = _context12["catch"](0);
_context12.next = 13;
return effects.put(saveTileBackgroundError(_context12.t0));
case 13:
case "end":
return _context12.stop();
}
}
}, _marked12, null, [[0, 9]]);
}
function onSaveBackgroundColor(options, action) {
var data, authToken, branding;
return _regeneratorRuntime__default['default'].wrap(function onSaveBackgroundColor$(_context13) {
while (1) {
switch (_context13.prev = _context13.next) {
case 0:
_context13.prev = 0;
data = action.data, authToken = action.authToken;
_context13.next = 4;
return effects.call(API$1.saveBranding, authToken, data, options);
case 4:
branding = _context13.sent;
_context13.next = 7;
return effects.put(saveBackgroundColorSuccess(branding));
case 7:
_context13.next = 13;
break;
case 9:
_context13.prev = 9;
_context13.t0 = _context13["catch"](0);
_context13.next = 13;
return effects.put(saveBackgroundColorError(_context13.t0));
case 13:
case "end":
return _context13.stop();
}
}
}, _marked13, null, [[0, 9]]);
}
function onLogout(options) {
return _regeneratorRuntime__default['default'].wrap(function onLogout$(_context14) {
while (1) {
switch (_context14.prev = _context14.next) {
case 0:
_context14.next = 2;
return effects.put(resetNags());
case 2:
case "end":
return _context14.stop();
}
}
}, _marked14);
}
function onDeleteCalendar(options, action) {
var id, authToken, connectedCalendars, calendar;
return _regeneratorRuntime__default['default'].wrap(function onDeleteCalendar$(_context15) {
while (1) {
switch (_context15.prev = _context15.next) {
case 0:
_context15.prev = 0;
id = action.id, authToken = action.authToken;
_context15.next = 4;
return effects.select(function (state) {
return state.user.data.calendarAccounts;
});
case 4:
connectedCalendars = _context15.sent;
calendar = _findInstanceProperty__default['default'](connectedCalendars).call(connectedCalendars, function (aCalendar) {
return aCalendar.id === id;
});
_context15.next = 8;
return effects.call(API$1.deleteCalendar, authToken, id, options);
case 8:
_context15.next = 10;
return effects.put(deleteCalendarSuccess(calendar));
case 10:
_context15.next = 12;
return effects.put(loadUser(authToken));
case 12:
_context15.next = 18;
break;
case 14:
_context15.prev = 14;
_context15.t0 = _context15["catch"](0);
_context15.next = 18;
return effects.put(deleteCalendarError(_context15.t0));
case 18:
case "end":
return _context15.stop();
}
}
}, _marked15, null, [[0, 14]]);
}
function onGetDoodleFeed(options, _ref4) {
var authToken, feed;
return _regeneratorRuntime__default['default'].wrap(function onGetDoodleFeed$(_context16) {
while (1) {
switch (_context16.prev = _context16.next) {
case 0:
authToken = _ref4.authToken;
_context16.prev = 1;
_context16.next = 4;
return effects.call(API$1.getDoodleFeed, authToken, options);
case 4:
feed = _context16.sent;
_context16.next = 7;
return effects.put(getDoodleFeedSuccess(feed.url));
case 7:
_context16.next = 13;
break;
case 9:
_context16.prev = 9;
_context16.t0 = _context16["catch"](1);
_context16.next = 13;
return effects.put(getDoodleFeedError(_context16.t0));
case 13:
case "end":
return _context16.stop();
}
}
}, _marked16, null, [[1, 9]]);
}
function onConnectDoodleFeed(options, action) {
var url, authToken;
return _regeneratorRuntime__default['default'].wrap(function onConnectDoodleFeed$(_context17) {
while (1) {
switch (_context17.prev = _context17.next) {
case 0:
_context17.prev = 0;
url = action.url, authToken = action.authToken;
_context17.next = 4;
return effects.call(API$1.connectDoodleFeed, authToken, {
url: url
}, options);
case 4:
_context17.next = 6;
return effects.put(connectDoodleFeedSuccess());
case 6:
_context17.next = 8;
return effects.put(loadUser(authToken));
case 8:
_context17.next = 14;
break;
case 10:
_context17.prev = 10;
_context17.t0 = _context17["catch"](0);
_context17.next = 14;
return effects.put(connectDoodleFeedError(_context17.t0));
case 14:
case "end":
return _context17.stop();
}
}
}, _marked17, null, [[0, 10]]);
}
function onResetDoodleFeed(options, _ref5) {
var authToken, feed;
return _regeneratorRuntime__default['default'].wrap(function onResetDoodleFeed$(_context18) {
while (1) {
switch (_context18.prev = _context18.next) {
case 0:
authToken = _ref5.authToken;
_context18.prev = 1;
_context18.next = 4;
return effects.call(API$1.resetDoodleFeed, authToken, options);
case 4:
feed = _context18.sent;
_context18.next = 7;
return effects.put(resetDoodleFeedSuccess(feed.url));
case 7:
_context18.next = 13;
break;
case 9:
_context18.prev = 9;
_context18.t0 = _context18["catch"](1);
_context18.next = 13;
return effects.put(resetDoodleFeedError(_context18.t0));
case 13:
case "end":
return _context18.stop();
}
}
}, _marked18, null, [[1, 9]]);
}
function findAddressBookById(addressBooks, id) {
var provider;
var addressBook;
for (var i = 0; i < addressBooks.length; i += 1) {
provider = addressBooks[i];
for (var j = 0; j < addressBooks.length; j += 1) {
addressBook = provider.addressBooks[j];
if (addressBook.id === id) {
return _objectSpread$7({
accountType: provider.accountType
}, addressBook);
}
}
}
}
function onDeleteAddressBook(options, action) {
var id, authToken, connectedBooks, addressBook;
return _regeneratorRuntime__default['default'].wrap(function onDeleteAddressBook$(_context19) {
while (1) {
switch (_context19.prev = _context19.next) {
case 0:
_context19.prev = 0;
id = action.id, authToken = action.authToken;
_context19.next = 4;
return effects.select(function (state) {
return state.user.data.addressBooks;
});
case 4:
connectedBooks = _context19.sent;
addressBook = findAddressBookById(connectedBooks, id);
_context19.next = 8;
return effects.call(API$1.deleteAddressBook, authToken, id, options);
case 8:
_context19.next = 10;
return effects.put(deleteAddressBookSuccess(addressBook));
case 10:
_context19.next = 12;
return effects.put(loadUser(authToken));
case 12:
_context19.next = 18;
break;
case 14:
_context19.prev = 14;
_context19.t0 = _context19["catch"](0);
_context19.next = 18;
return effects.put(deleteAddressBookError(_context19.t0));
case 18:
case "end":
return _context19.stop();
}
}
}, _marked19, null, [[0, 14]]);
}
function onLogoutApps(options, _ref6) {
var authToken;
return _regeneratorRuntime__default['default'].wrap(function onLogoutApps$(_context20) {
while (1) {
switch (_context20.prev = _context20.next) {
case 0:
authToken = _ref6.authToken;
_context20.prev = 1;
_context20.next = 4;
return effects.call(API$1.logoutApps, authToken, options);
case 4:
_context20.next = 6;
return effects.put(logoutAppsSuccess());
case 6:
_context20.next = 8;
return effects.put(logout());
case 8:
_context20.next = 14;
break;
case 10:
_context20.prev = 10;
_context20.t0 = _context20["catch"](1);
_context20.next = 14;
return effects.put(logoutAppsError(_context20.t0));
case 14:
case "end":
return _context20.stop();
}
}
}, _marked20, null, [[1, 10]]);
}
function onGetApps(options, _ref7) {
var authToken, apps;
return _regeneratorRuntime__default['default'].wrap(function onGetApps$(_context21) {
while (1) {
switch (_context21.prev = _context21.next) {
case 0:
authToken = _ref7.authToken;
_context21.prev = 1;
_context21.next = 4;
return effects.call(API$1.getApps, authToken, options);
case 4:
apps = _context21.sent;
_context21.next = 7;
return effects.put(getAppsSuccess(apps));
case 7:
_context21.next = 13;
break;
case 9:
_context21.prev = 9;
_context21.t0 = _context21["catch"](1);
_context21.next = 13;
return effects.put(getAppsError(_context21.t0));
case 13:
case "end":
return _context21.stop();
}
}
}, _marked21, null, [[1, 9]]);
}
function onSaveAvatar(options, action) {
var authToken, _action$payload4, file, fileType;
return _regeneratorRuntime__default['default'].wrap(function onSaveAvatar$(_context22) {
while (1) {
switch (_context22.prev = _context22.next) {
case 0:
_context22.prev = 0;
authToken = action.authToken;
_action$payload4 = action.payload, file = _action$payload4.file, fileType = _action$payload4.fileType;
_context22.next = 5;
return effects.call(API$1.saveAvatar, authToken, file, fileType, options);
case 5:
_context22.next = 7;
return effects.put(saveAvatarSuccess());
case 7:
_context22.next = 13;
break;
case 9:
_context22.prev = 9;
_context22.t0 = _context22["catch"](0);
_context22.next = 13;
return effects.put(saveAvatarError(_context22.t0));
case 13:
case "end":
return _context22.stop();
}
}
}, _marked22, null, [[0, 9]]);
}
function onDeleteAvatar(options, _ref8) {
var authToken;
return _regeneratorRuntime__default['default'].wrap(function onDeleteAvatar$(_context23) {
while (1) {
switch (_context23.prev = _context23.next) {
case 0:
authToken = _ref8.authToken;
_context23.prev = 1;
_context23.next = 4;
return effects.call(API$1.deleteAvatar, authToken, options);
case 4:
_context23.next = 6;
return effects.put(deleteAvatarSuccess());
case 6:
_context23.next = 12;
break;
case 8:
_context23.prev = 8;
_context23.t0 = _context23["catch"](1);
_context23.next = 12;
return effects.put(deleteAvatarError(_context23.t0));
case 12:
case "end":
return _context23.stop();
}
}
}, _marked23, null, [[1, 8]]);
}
function watchSaveNewPassword(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSaveNewPassword$(_context24) {
while (1) {
switch (_context24.prev = _context24.next) {
case 0:
_context24.next = 2;
return effects.takeLatest(SettingsActionTypes.SAVE_NEW_PASSWORD, onNewPasswordSave, options);
case 2:
case "end":
return _context24.stop();
}
}
}, _marked24);
}
function watchSaveEmail(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSaveEmail$(_context25) {
while (1) {
switch (_context25.prev = _context25.next) {
case 0:
_context25.next = 2;
return effects.takeLatest(SettingsActionTypes.SAVE_NEW_EMAIL, onNewEmailSave, options);
case 2:
case "end":
return _context25.stop();
}
}
}, _marked25);
}
function watchSaveUser(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSaveUser$(_context26) {
while (1) {
switch (_context26.prev = _context26.next) {
case 0:
_context26.next = 2;
return effects.takeLatest(SettingsActionTypes.SAVE_USER, onUserSave, options);
case 2:
case "end":
return _context26.stop();
}
}
}, _marked26);
}
function watchDeleteAccount(options) {
return _regeneratorRuntime__default['default'].wrap(function watchDeleteAccount$(_context27) {
while (1) {
switch (_context27.prev = _context27.next) {
case 0:
_context27.next = 2;
return effects.takeLatest(SettingsActionTypes.DELETE_ACCOUNT, onAccountDelete, options);
case 2:
case "end":
return _context27.stop();
}
}
}, _marked27);
}
function watchDeleteThirdParty(options) {
return _regeneratorRuntime__default['default'].wrap(function watchDeleteThirdParty$(_context28) {
while (1) {
switch (_context28.prev = _context28.next) {
case 0:
_context28.next = 2;
return effects.takeLatest(SettingsActionTypes.DELETE_THIRD_PARTY, onThirdPartyDelete, options);
case 2:
case "end":
return _context28.stop();
}
}
}, _marked28);
}
function watchFetchPremiums(options) {
return _regeneratorRuntime__default['default'].wrap(function watchFetchPremiums$(_context29) {
while (1) {
switch (_context29.prev = _context29.next) {
case 0:
_context29.next = 2;
return effects.takeLatest(SettingsActionTypes.FETCH_PREMIUMS, onFetchPremiums, options);
case 2:
case "end":
return _context29.stop();
}
}
}, _marked29);
}
function watchSaveBranding(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSaveBranding$(_context30) {
while (1) {
switch (_context30.prev = _context30.next) {
case 0:
_context30.next = 2;
return effects.takeLatest(SettingsActionTypes.SAVE_BRANDING, onSaveBranding, options);
case 2:
case "end":
return _context30.stop();
}
}
}, _marked30);
}
function watchLogoUpload(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLogoUpload$(_context31) {
while (1) {
switch (_context31.prev = _context31.next) {
case 0:
_context31.next = 2;
return effects.takeLatest(SettingsActionTypes.UPLOAD_LOGO, onLogoUpload, options);
case 2:
case "end":
return _context31.stop();
}
}
}, _marked31);
}
function watchLogoRemove(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLogoRemove$(_context32) {
while (1) {
switch (_context32.prev = _context32.next) {
case 0:
_context32.next = 2;
return effects.takeLatest(SettingsActionTypes.REMOVE_LOGO, onLogoRemove, options);
case 2:
case "end":
return _context32.stop();
}
}
}, _marked32);
}
function watchBackgroundUpload(options) {
return _regeneratorRuntime__default['default'].wrap(function watchBackgroundUpload$(_context33) {
while (1) {
switch (_context33.prev = _context33.next) {
case 0:
_context33.next = 2;
return effects.takeLatest(SettingsActionTypes.UPLOAD_BACKGROUND, onBackgroundUpload, options);
case 2:
case "end":
return _context33.stop();
}
}
}, _marked33);
}
function watchBackgroundRemove(options) {
return _regeneratorRuntime__default['default'].wrap(function watchBackgroundRemove$(_context34) {
while (1) {
switch (_context34.prev = _context34.next) {
case 0:
_context34.next = 2;
return effects.takeLatest(SettingsActionTypes.REMOVE_BACKGROUND, onBackgroundRemove, options);
case 2:
case "end":
return _context34.stop();
}
}
}, _marked34);
}
function watchLogout(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLogout$(_context35) {
while (1) {
switch (_context35.prev = _context35.next) {
case 0:
_context35.next = 2;
return effects.takeLatest(ActionTypes.LOGOUT, onLogout, options);
case 2:
case "end":
return _context35.stop();
}
}
}, _marked35);
}
function watchDeleteCalendar(options) {
return _regeneratorRuntime__default['default'].wrap(function watchDeleteCalendar$(_context36) {
while (1) {
switch (_context36.prev = _context36.next) {
case 0:
_context36.next = 2;
return effects.takeLatest(SettingsActionTypes.DELETE_CALENDAR, onDeleteCalendar, options);
case 2:
case "end":
return _context36.stop();
}
}
}, _marked36);
}
function watchGetDoodleFeed(options) {
return _regeneratorRuntime__default['default'].wrap(function watchGetDoodleFeed$(_context37) {
while (1) {
switch (_context37.prev = _context37.next) {
case 0:
_context37.next = 2;
return effects.takeLatest(SettingsActionTypes.GET_DOODLE_FEED, onGetDoodleFeed, options);
case 2:
case "end":
return _context37.stop();
}
}
}, _marked37);
}
function watchConnectDoodleFeed(options) {
return _regeneratorRuntime__default['default'].wrap(function watchConnectDoodleFeed$(_context38) {
while (1) {
switch (_context38.prev = _context38.next) {
case 0:
_context38.next = 2;
return effects.takeLatest(SettingsActionTypes.CONNECT_DOODLE_FEED, onConnectDoodleFeed, options);
case 2:
case "end":
return _context38.stop();
}
}
}, _marked38);
}
function watchResetDoodleFeed(options) {
return _regeneratorRuntime__default['default'].wrap(function watchResetDoodleFeed$(_context39) {
while (1) {
switch (_context39.prev = _context39.next) {
case 0:
_context39.next = 2;
return effects.takeLatest(SettingsActionTypes.RESET_DOODLE_FEED, onResetDoodleFeed, options);
case 2:
case "end":
return _context39.stop();
}
}
}, _marked39);
}
function watchDeleteAddressBook(options) {
return _regeneratorRuntime__default['default'].wrap(function watchDeleteAddressBook$(_context40) {
while (1) {
switch (_context40.prev = _context40.next) {
case 0:
_context40.next = 2;
return effects.takeLatest(SettingsActionTypes.DELETE_ADDRESS_BOOK, onDeleteAddressBook, options);
case 2:
case "end":
return _context40.stop();
}
}
}, _marked40);
}
function watchLogoutApps(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLogoutApps$(_context41) {
while (1) {
switch (_context41.prev = _context41.next) {
case 0:
_context41.next = 2;
return effects.takeLatest(SettingsActionTypes.LOGOUT_APPS, onLogoutApps, options);
case 2:
case "end":
return _context41.stop();
}
}
}, _marked41);
}
function watchGetApps(options) {
return _regeneratorRuntime__default['default'].wrap(function watchGetApps$(_context42) {
while (1) {
switch (_context42.prev = _context42.next) {
case 0:
_context42.next = 2;
return effects.takeLatest(SettingsActionTypes.GET_APPS, onGetApps, options);
case 2:
case "end":
return _context42.stop();
}
}
}, _marked42);
}
function watchSaveAvatar(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSaveAvatar$(_context43) {
while (1) {
switch (_context43.prev = _context43.next) {
case 0:
_context43.next = 2;
return effects.takeLatest(SettingsActionTypes.SAVE_AVATAR, onSaveAvatar, options);
case 2:
case "end":
return _context43.stop();
}
}
}, _marked43);
}
function watchDeleteAvatar(options) {
return _regeneratorRuntime__default['default'].wrap(function watchDeleteAvatar$(_context44) {
while (1) {
switch (_context44.prev = _context44.next) {
case 0:
_context44.next = 2;
return effects.takeLatest(SettingsActionTypes.DELETE_AVATAR, onDeleteAvatar, options);
case 2:
case "end":
return _context44.stop();
}
}
}, _marked44);
}
function watchSaveTileBackground(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSaveTileBackground$(_context45) {
while (1) {
switch (_context45.prev = _context45.next) {
case 0:
_context45.next = 2;
return effects.takeLatest(SettingsActionTypes.SAVE_TILE_BACKGROUND, onSaveTileBackground, options);
case 2:
case "end":
return _context45.stop();
}
}
}, _marked45);
}
function watchSaveBackgroundColor(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSaveBackgroundColor$(_context46) {
while (1) {
switch (_context46.prev = _context46.next) {
case 0:
_context46.next = 2;
return effects.takeLatest(SettingsActionTypes.SAVE_BACKGROUND_COLOR, onSaveBackgroundColor, options);
case 2:
case "end":
return _context46.stop();
}
}
}, _marked46);
}
function settingsSaga() {
var options,
_args47 = arguments;
return _regeneratorRuntime__default['default'].wrap(function settingsSaga$(_context47) {
while (1) {
switch (_context47.prev = _context47.next) {
case 0:
options = _args47.length > 0 && _args47[0] !== undefined ? _args47[0] : {};
_context47.next = 3;
return effects.all([effects.call(watchSaveNewPassword, options), effects.call(watchSaveUser, options), effects.call(watchSaveEmail, options), effects.call(watchDeleteAccount, options), effects.call(watchDeleteThirdParty, options), effects.call(watchFetchPremiums, options), effects.call(watchSaveBranding, options), effects.call(watchLogoUpload, options), effects.call(watchLogoRemove, options), effects.call(watchBackgroundUpload, options), effects.call(watchBackgroundRemove, options), effects.call(watchLogout, options), effects.call(watchDeleteCalendar, options), effects.call(watchGetDoodleFeed, options), effects.call(watchConnectDoodleFeed, options), effects.call(watchResetDoodleFeed, options), effects.call(watchDeleteAddressBook, options), effects.call(watchSaveAvatar, options), effects.call(watchDeleteAvatar, options), effects.call(watchLogoutApps, options), effects.call(watchGetApps, options), effects.call(watchSaveTileBackground, options), effects.call(watchSaveBackgroundColor, options)]);
case 3:
case "end":
return _context47.stop();
}
}
}, _marked47);
}
var Type = {
CALENDAR: 'calendar',
ADDRESS_BOOK: 'contacts'
};
var generateRandomStr = function generateRandomStr() {
var length = 32;
var text = '';
var possibilities = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (var i = 0; i < length; i++) {
text += possibilities.charAt(Math.floor(Math.random() * possibilities.length));
}
return text;
};
var generateUrl = function generateUrl(type, provider, token, redirectUri, clientId, branch) {
var clientBaseUrl = provider === 'google' ? 'https://accounts.google.com/o/oauth2/auth' : 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize';
var scope = type === 'calendar' ? 'CALENDARS' : 'CONTACTS';
if (provider === 'google') {
var _context, _context2, _context3, _context4;
var scopeUrl = type === 'calendar' ? 'https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/calendar.readonly' : 'https://www.googleapis.com/auth/contacts.readonly';
var state = encodeURIComponent(_JSON$stringify__default['default']({
doodleScope: [scope],
callbackUrl: redirectUri,
branch: branch,
oauth_anti_csrf_token_cookie: token
}));
return _concatInstanceProperty__default['default'](_context = _concatInstanceProperty__default['default'](_context2 = _concatInstanceProperty__default['default'](_context3 = _concatInstanceProperty__default['default'](_context4 = "".concat(clientBaseUrl, "?access_type=offline&approval_prompt=force&client_id=")).call(_context4, clientId, ".apps.googleusercontent.com&redirect_uri=")).call(_context3, redirectUri, "&response_type=code&scope=")).call(_context2, scopeUrl, "&state=")).call(_context, state);
}
if (provider === 'outlookcom') {
var _context5, _context6, _context7, _context8;
var nonce = generateRandomStr();
var _state = encodeURIComponent(_JSON$stringify__default['default']({
type: scope,
branch: branch,
oauth_anti_csrf_token_cookie: token
}));
return _concatInstanceProperty__default['default'](_context5 = _concatInstanceProperty__default['default'](_context6 = _concatInstanceProperty__default['default'](_context7 = _concatInstanceProperty__default['default'](_context8 = "".concat(clientBaseUrl, "?client_id=")).call(_context8, clientId, "&response_type=id_token+code&response_mode=form_post&scope=openid+offline_access+User.Read+Calendars.ReadWrite+Contacts.Read&nonce=")).call(_context7, nonce, "&redirect_uri=")).call(_context6, encodeURIComponent(redirectUri), "&state=")).call(_context5, _state);
}
};
var open = function open(provider, type, url) {
var _context9, _context10, _context11, _context12;
var width = 600;
var height = 600;
var left = screen.width / 2 - width / 2;
var top = screen.height / 2 - height / 2;
var windowName = _concatInstanceProperty__default['default'](_context9 = "connect-".concat(provider, "-")).call(_context9, type);
return window.open(url, windowName, _concatInstanceProperty__default['default'](_context10 = _concatInstanceProperty__default['default'](_context11 = _concatInstanceProperty__default['default'](_context12 = "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=".concat(width, ", height=")).call(_context12, height, ", top=")).call(_context11, top, ", left=")).call(_context10, left));
};
var checkIfWindowClosed = function checkIfWindowClosed(win) {
return new _Promise__default['default'](function (resolve, reject) {
var closingTimerId = _setTimeout__default['default'](reject, 180000);
var timer = _setInterval__default['default'](function () {
if (win && win.closed) {
window.clearInterval(timer);
window.clearInterval(closingTimerId);
resolve();
}
}, 100);
});
};
var checkIfConnectedSuccessfully = function checkIfConnectedSuccessfully(provider, oldCalendarsList, newCalendarsList) {
var addedCalendar = _filterInstanceProperty__default['default'](newCalendarsList).call(newCalendarsList, function (calendar) {
return !_someInstanceProperty__default['default'](oldCalendarsList).call(oldCalendarsList, function (cal) {
return calendar.id === cal.id;
});
});
return addedCalendar.length > 0;
};
var generateUrlData = function generateUrlData(provider, options) {
var CSRFTokenFromCookie = storage.getCookie('oauth_anti_csrf_token_cookie');
var data = {
randomCSRFToken: CSRFTokenFromCookie || generateRandomOAuthAntiCSRFToken(),
clientId: provider === 'google' ? options.googleClientId : options.outlookClientId,
redirectUri: provider === 'google' ? options.googleCalendarRedirectUri : options.outlookRedirectUri,
branch: options.oAuthProxyTarget
};
if (!CSRFTokenFromCookie) {
storage.setOAuthAntiCSRFTokenCookie(data.randomCSRFToken, options.cookieDomain);
}
return data;
};
var _marked$3 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onConnectCalendar),
_marked2$3 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onConnectAddressBook),
_marked3$3 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchConnectCalendar),
_marked4$2 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchConnectAddressBook),
_marked5$2 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(connectCalendarSaga);
function onConnectCalendar(options, action) {
var provider, authToken, connectedCalendars, data, url, win, newConnectedCalendars;
return _regeneratorRuntime__default['default'].wrap(function onConnectCalendar$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
provider = action.provider, authToken = action.authToken;
_context.next = 3;
return effects.select(function (state) {
return state.user.data.calendarAccounts;
});
case 3:
connectedCalendars = _context.sent;
data = generateUrlData(provider, options);
url = generateUrl(Type.CALENDAR, provider, data.randomCSRFToken, data.redirectUri, data.clientId, data.branch);
win = open(provider, Type.CALENDAR, url);
_context.next = 9;
return effects.call(checkIfWindowClosed, win);
case 9:
_context.next = 11;
return effects.put(loadUser(authToken));
case 11:
_context.next = 13;
return effects.take(ActionTypes.USER_LOADED);
case 13:
_context.next = 15;
return effects.select(function (state) {
return state.user.data.calendarAccounts;
});
case 15:
newConnectedCalendars = _context.sent;
if (!checkIfConnectedSuccessfully(provider, connectedCalendars, newConnectedCalendars)) {
_context.next = 21;
break;
}
_context.next = 19;
return effects.put(connectCalendarSuccess(provider));
case 19:
_context.next = 23;
break;
case 21:
_context.next = 23;
return effects.put(connectCalendarError());
case 23:
case "end":
return _context.stop();
}
}
}, _marked$3);
}
function onConnectAddressBook(options, action) {
var provider, authToken, connectedBooks, data, url, win, newConnectedBooks;
return _regeneratorRuntime__default['default'].wrap(function onConnectAddressBook$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
provider = action.provider, authToken = action.authToken;
_context2.next = 3;
return effects.select(function (state) {
return state.user.data.addressBooks;
});
case 3:
connectedBooks = _context2.sent;
data = generateUrlData(provider, options);
url = generateUrl(Type.ADDRESS_BOOK, provider, data.randomCSRFToken, data.redirectUri, data.clientId, data.branch);
win = open(provider, Type.ADDRESS_BOOK, url);
_context2.next = 9;
return effects.call(checkIfWindowClosed, win);
case 9:
_context2.next = 11;
return effects.put(loadUser(authToken));
case 11:
_context2.next = 13;
return effects.take(ActionTypes.USER_LOADED);
case 13:
_context2.next = 15;
return effects.select(function (state) {
return state.user.data.addressBooks;
});
case 15:
newConnectedBooks = _context2.sent;
if (!checkIfConnectedSuccessfully(provider, connectedBooks, newConnectedBooks)) {
_context2.next = 21;
break;
}
_context2.next = 19;
return effects.put(connectAddressBookSuccess(provider));
case 19:
_context2.next = 23;
break;
case 21:
_context2.next = 23;
return effects.put(connectAddressBookError());
case 23:
case "end":
return _context2.stop();
}
}
}, _marked2$3);
}
function watchConnectCalendar(options) {
return _regeneratorRuntime__default['default'].wrap(function watchConnectCalendar$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return effects.takeLatest(ConnectCalendarActionTypes.CONNECT_CALENDAR, onConnectCalendar, options);
case 2:
case "end":
return _context3.stop();
}
}
}, _marked3$3);
}
function watchConnectAddressBook(options) {
return _regeneratorRuntime__default['default'].wrap(function watchConnectAddressBook$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return effects.takeLatest(ConnectCalendarActionTypes.CONNECT_ADDRESS_BOOK, onConnectAddressBook, options);
case 2:
case "end":
return _context4.stop();
}
}
}, _marked4$2);
}
function connectCalendarSaga() {
var options,
_args5 = arguments;
return _regeneratorRuntime__default['default'].wrap(function connectCalendarSaga$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
options = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};
_context5.next = 3;
return effects.all([effects.call(watchConnectCalendar, options), effects.call(watchConnectAddressBook, options)]);
case 3:
case "end":
return _context5.stop();
}
}
}, _marked5$2);
}
var _marked$4 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onSelectPrimaryCalendar),
_marked2$4 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchSelectPrimaryCalendar),
_marked3$4 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(selectPrimaryCalendarSaga);
function ownKeys$8(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty__default['default'](_context4 = ownKeys$8(Object(source), true)).call(_context4, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context5; _forEachInstanceProperty__default['default'](_context5 = ownKeys$8(Object(source))).call(_context5, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
function onSelectPrimaryCalendar(options, action) {
var authToken, calendarId, fetchOptions, user;
return _regeneratorRuntime__default['default'].wrap(function onSelectPrimaryCalendar$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
authToken = action.authToken, calendarId = action.calendarId;
fetchOptions = _objectSpread$8(_objectSpread$8({}, options), {}, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: _JSON$stringify__default['default']({
primaryCalendarAccountId: calendarId
})
});
_context.prev = 2;
_context.next = 5;
return effects.select(function (globalState) {
return globalState[options.domain || 'user'];
});
case 5:
_context.sent;
_context.next = 8;
return effects.call(API.me, authToken, fetchOptions);
case 8:
user = _context.sent;
_context.next = 11;
return effects.put(selectPrimaryCalendarSuccess(user.primaryCalendarAccountId));
case 11:
_context.next = 17;
break;
case 13:
_context.prev = 13;
_context.t0 = _context["catch"](2);
_context.next = 17;
return effects.put(selectPrimaryCalendarError(_context.t0));
case 17:
case "end":
return _context.stop();
}
}
}, _marked$4, null, [[2, 13]]);
}
function watchSelectPrimaryCalendar(options) {
return _regeneratorRuntime__default['default'].wrap(function watchSelectPrimaryCalendar$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return effects.takeLatest(SelectPrimaryCalendarActionTypes.SELECT_PRIMARY_CALENDAR, onSelectPrimaryCalendar, options);
case 2:
case "end":
return _context2.stop();
}
}
}, _marked2$4);
}
function selectPrimaryCalendarSaga() {
var options,
_args3 = arguments;
return _regeneratorRuntime__default['default'].wrap(function selectPrimaryCalendarSaga$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
_context3.next = 3;
return effects.all([effects.call(watchSelectPrimaryCalendar, options)]);
case 3:
case "end":
return _context3.stop();
}
}
}, _marked3$4);
}
function getLocationSearch() {
return window.location.search;
}
function getLocationPathname() {
return window.location.pathname;
}
var navigateTo = function navigateTo(url) {
window.location = url;
};
var _marked$5 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchRedirect);
var CONTINUE_TO_URL_QUERY_PARAMETER_KEY = 'redirectUrl';
var PATH = {
LOGIN: '/login',
LOGOUT: '/logout',
SIGNUP: '/signup'
};
var WELCOME_PATHS = ['/premium/business/welcome', '/premium/private/welcome'];
/**
* Redirects the user to a different page, including the current path as redirect URL.
* @param {string} path The path to navigate to.
*/
function onRedirectTo(path) {
var _context, _context2, _context3;
var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var locationPathname = getLocationPathname();
var pathname;
if (action.redirectUrl && // allow URLs on same domain, e.g. starting with `/`
/^\//.test(action.redirectUrl)) {
pathname = action.redirectUrl;
} else if (_includesInstanceProperty__default['default'](WELCOME_PATHS).call(WELCOME_PATHS, locationPathname)) {
pathname = '/dashboard';
} else {
pathname = locationPathname;
}
var searchParams = getLocationSearch();
var continueURL = encodeURIComponent(searchParams.length > 0 ? _concatInstanceProperty__default['default'](_context = "".concat(pathname)).call(_context, searchParams) : pathname);
navigateTo(_concatInstanceProperty__default['default'](_context2 = "".concat(path)).call(_context2, continueURL ? _concatInstanceProperty__default['default'](_context3 = "?".concat(CONTINUE_TO_URL_QUERY_PARAMETER_KEY, "=")).call(_context3, continueURL) : ''));
}
function watchRedirect() {
return _regeneratorRuntime__default['default'].wrap(function watchRedirect$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return effects.all([effects.takeLatest(ActionTypes.REDIRECT_TO_LOGIN, onRedirectTo, PATH.LOGIN), effects.takeLatest(ActionTypes.REDIRECT_TO_LOGOUT, onRedirectTo, PATH.LOGOUT), effects.takeLatest(ActionTypes.REDIRECT_TO_SIGNUP, onRedirectTo, PATH.SIGNUP)]);
case 2:
return _context4.abrupt("return", _context4.sent);
case 3:
case "end":
return _context4.stop();
}
}
}, _marked$5);
}
var _marked$6 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onResendActivationMail),
_marked2$5 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchResendActivationMail);
var INTERVAL_BETWEEN_RESEND_ACTIVATIONS = 10000;
function getLoginEmail(state) {
return state.auth && state.auth.login && state.auth.login.email.value;
}
function getUserId(state) {
return state.user && state.user.data && state.user.data.id;
}
function onResendActivationMail(options) {
var email, id;
return _regeneratorRuntime__default['default'].wrap(function onResendActivationMail$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return effects.select(getLoginEmail);
case 3:
email = _context.sent;
_context.next = 6;
return effects.select(getUserId);
case 6:
id = _context.sent;
_context.next = 9;
return effects.call(API.resendActivation, id, email, options);
case 9:
_context.next = 11;
return effects.put(resendActivationMailSucceeded());
case 11:
_context.next = 13;
return effects.delay(INTERVAL_BETWEEN_RESEND_ACTIVATIONS);
case 13:
_context.next = 15;
return effects.put(resendActivationEnabled());
case 15:
_context.next = 21;
break;
case 17:
_context.prev = 17;
_context.t0 = _context["catch"](0);
_context.next = 21;
return effects.put(resendActivationMailFailed());
case 21:
case "end":
return _context.stop();
}
}
}, _marked$6, null, [[0, 17]]);
}
function watchResendActivationMail(options) {
return _regeneratorRuntime__default['default'].wrap(function watchResendActivationMail$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return effects.all([effects.takeLatest(ActionTypes.RESEND_ACTIVATIONMAIL, onResendActivationMail, options)]);
case 2:
return _context2.abrupt("return", _context2.sent);
case 3:
case "end":
return _context2.stop();
}
}
}, _marked2$5);
}
function ownKeys$9(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default['default'](_context = ownKeys$9(Object(source), true)).call(_context, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$9(Object(source))).call(_context2, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var isPremiumBusiness = function isPremiumBusiness(user) {
return user && user.activePremium ? user.activePremium.business : false;
};
var isOnTrial = function isOnTrial(user) {
return user && user.activePremium ? user.activePremium && user.activePremium.type === CONSTANTS.userPlan.trial : false;
};
var isPremium = function isPremium(user) {
return user ? !!user.activePremium : false;
};
var getUserPlanType = function getUserPlanType(user) {
if (isPremium(user)) {
return isPremiumBusiness(user) ? CONSTANTS.userPlan.business : CONSTANTS.userPlan.indvidual;
}
return CONSTANTS.userPlan.free;
};
var getGeolocationData = function getGeolocationData(geolocation) {
return {
country: geolocation,
user: {
userCountry: geolocation
}
};
};
var getUserAnalyticsData = function getUserAnalyticsData(user, lang) {
var isActive = user && user.id;
var data = {
page: {
userID: undefined,
userLoginState: isActive
},
language: lang
};
if (isActive) {
data.page = _objectSpread$9(_objectSpread$9({}, data.page), {}, {
userType: isPremium(user) ? CONSTANTS.userType.premium : CONSTANTS.userType.free,
userID: user.id
});
data.user = {
userPlanType: getUserPlanType(user),
userIsTrial: isOnTrial(user),
userTimeZone: user.timeZone || CONSTANTS.timeZone.undefined,
userEligibleForTrial: !user.hadTrial,
billingFrequency: user.activePremium && user.activePremium.billingFrequency,
userHasCalendarSynced: String(typeof user.pollToCalendarSyncEnabled === 'boolean' ? user.pollToCalendarSyncEnabled : false)
};
if (user.hadTrial && user.mandator && user.mandator.version) {
data.user.mandatorVersion = user.mandator.version.toFixed(1).toString();
}
}
return data;
};
var _marked$7 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onUserLoaded),
_marked2$6 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onFetchGeolocationSuccess),
_marked3$5 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onLocaleChange),
_marked4$3 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onShowActivationNotifications),
_marked5$3 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(onClickResendActiviation),
_marked6$2 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchUserLoaded),
_marked7$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchFetchGeolocationSuccess),
_marked8$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchLocaleChange),
_marked9$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchShowActivationNotifications),
_marked10$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(watchClickResendActiviation),
_marked11$1 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(startTracking);
function ownKeys$a(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context12; _forEachInstanceProperty__default['default'](_context12 = ownKeys$a(Object(source), true)).call(_context12, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context13; _forEachInstanceProperty__default['default'](_context13 = ownKeys$a(Object(source))).call(_context13, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
var defaultTrackingFields = {
event: 'gtmEvent',
eventNonInteraction: 'False',
eventLabel: undefined,
// flush datalayer value in order to not mix them up between events
eventValue: undefined // flush datalayer value in order to not mix them up between events
};
function onUserLoaded(options, action) {
var user, lang;
return _regeneratorRuntime__default['default'].wrap(function onUserLoaded$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
user = action.user;
_context.next = 3;
return effects.select(function (state) {
return state.i18n.locale;
});
case 3:
lang = _context.sent;
_context.next = 6;
return effects.put(tagmanager.pushDataLayer(_objectSpread$a({}, getUserAnalyticsData(user, lang))));
case 6:
case "end":
return _context.stop();
}
}
}, _marked$7);
}
function onFetchGeolocationSuccess() {
var geolocation;
return _regeneratorRuntime__default['default'].wrap(function onFetchGeolocationSuccess$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return effects.select(function (state) {
return state.geolocation.geolocation.country_code;
});
case 2:
geolocation = _context2.sent;
_context2.next = 5;
return effects.put(tagmanager.pushDataLayer(_objectSpread$a({}, getGeolocationData(geolocation))));
case 5:
case "end":
return _context2.stop();
}
}
}, _marked2$6);
}
/**
* @todo move to web-i18n
*/
function onLocaleChange(options, action) {
return _regeneratorRuntime__default['default'].wrap(function onLocaleChange$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return effects.put(tagmanager.pushDataLayer({
language: action.payload.locale
}));
case 2:
case "end":
return _context3.stop();
}
}
}, _marked3$5);
}
function onShowActivationNotifications() {
return _regeneratorRuntime__default['default'].wrap(function onShowActivationNotifications$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return effects.put(tagmanager.pushDataLayer(_objectSpread$a(_objectSpread$a({}, defaultTrackingFields), {}, {
eventLabel: 'showActivationNotification'
})));
case 2:
case "end":
return _context4.stop();
}
}
}, _marked4$3);
}
function onClickResendActiviation() {
return _regeneratorRuntime__default['default'].wrap(function onClickResendActiviation$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
_context5.next = 2;
return effects.put(tagmanager.pushDataLayer(_objectSpread$a(_objectSpread$a({}, defaultTrackingFields), {}, {
eventLabel: 'clickResendActivation'
})));
case 2:
case "end":
return _context5.stop();
}
}
}, _marked5$3);
}
function watchUserLoaded(options) {
return _regeneratorRuntime__default['default'].wrap(function watchUserLoaded$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
_context6.next = 2;
return effects.takeEvery(ActionTypes.USER_LOADED, onUserLoaded, options);
case 2:
case "end":
return _context6.stop();
}
}
}, _marked6$2);
}
function watchFetchGeolocationSuccess(options) {
return _regeneratorRuntime__default['default'].wrap(function watchFetchGeolocationSuccess$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
_context7.next = 2;
return effects.takeEvery('@doodle/geolocation/FETCH_GEOLOCATION_SUCCESS', onFetchGeolocationSuccess, options);
case 2:
case "end":
return _context7.stop();
}
}
}, _marked7$1);
}
function watchLocaleChange(options) {
return _regeneratorRuntime__default['default'].wrap(function watchLocaleChange$(_context8) {
while (1) {
switch (_context8.prev = _context8.next) {
case 0:
_context8.next = 2;
return effects.takeEvery('@doodle/i18n/CHANGE_LOCALE', onLocaleChange, options);
case 2:
case "end":
return _context8.stop();
}
}
}, _marked8$1);
}
function watchShowActivationNotifications(options) {
return _regeneratorRuntime__default['default'].wrap(function watchShowActivationNotifications$(_context9) {
while (1) {
switch (_context9.prev = _context9.next) {
case 0:
_context9.next = 2;
return effects.takeEvery(ActionTypes.RESEND_ACTIVATIONMAIL_ENABLED, onShowActivationNotifications, options);
case 2:
case "end":
return _context9.stop();
}
}
}, _marked9$1);
}
function watchClickResendActiviation(options) {
return _regeneratorRuntime__default['default'].wrap(function watchClickResendActiviation$(_context10) {
while (1) {
switch (_context10.prev = _context10.next) {
case 0:
_context10.next = 2;
return effects.takeEvery(ActionTypes.RESEND_ACTIVATIONMAIL, onClickResendActiviation, options);
case 2:
case "end":
return _context10.stop();
}
}
}, _marked10$1);
}
function startTracking(options) {
return _regeneratorRuntime__default['default'].wrap(function startTracking$(_context11) {
while (1) {
switch (_context11.prev = _context11.next) {
case 0:
_context11.next = 2;
return effects.all([effects.call(watchUserLoaded, options), effects.call(watchFetchGeolocationSuccess, options), effects.call(watchLocaleChange, options), effects.call(watchShowActivationNotifications, options), effects.call(watchClickResendActiviation, options)]);
case 2:
case "end":
return _context11.stop();
}
}
}, _marked11$1);
}
var _marked$8 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(loadUserSaga),
_marked2$7 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(loadUserSettingsSaga),
_marked3$6 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(loadUserConnectCalendarSaga),
_marked4$4 = /*#__PURE__*/_regeneratorRuntime__default['default'].mark(loadUserSelectPrimaryCalendarSaga);
/**
* Saga that watches for the `loadUser` and `fetchUser` actions.
* Bootstrapped by dispatching the `loadUser` action.
* @param {Object} options Saga options
* @param {function} options.getCookie supply a cookie string (like the one from `document.cookie`)
* @param {string} options.domain supply a cookie string (like the one from `document.cookie`)
*/
function loadUserSaga() {
var _context;
var options,
_args = arguments;
return _regeneratorRuntime__default['default'].wrap(function loadUserSaga$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
options = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
_context2.next = 3;
return effects.all(_filterInstanceProperty__default['default'](_context = [effects.call(watchLoadBranding, options), effects.call(watchLoadTheme, options), effects.call(watchLoadUser, options), effects.call(watchStoreChanges, options), effects.call(watchRedirect, options), effects.call(watchResendActivationMail, options), effects.call(startTracking, options)]).call(_context, function (effect) {
return effect;
}));
case 3:
case "end":
return _context2.stop();
}
}
}, _marked$8);
}
function loadUserSettingsSaga() {
var options,
_args2 = arguments;
return _regeneratorRuntime__default['default'].wrap(function loadUserSettingsSaga$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
_context3.next = 3;
return effects.all([effects.call(settingsSaga, options), effects.put(geolocation.fetchGeolocation())]);
case 3:
case "end":
return _context3.stop();
}
}
}, _marked2$7);
}
function loadUserConnectCalendarSaga() {
var options,
_args3 = arguments;
return _regeneratorRuntime__default['default'].wrap(function loadUserConnectCalendarSaga$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
_context4.next = 3;
return effects.all([effects.call(connectCalendarSaga, options)]);
case 3:
case "end":
return _context4.stop();
}
}
}, _marked3$6);
}
function loadUserSelectPrimaryCalendarSaga() {
var options,
_args4 = arguments;
return _regeneratorRuntime__default['default'].wrap(function loadUserSelectPrimaryCalendarSaga$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
options = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};
_context5.next = 3;
return effects.all([effects.call(selectPrimaryCalendarSaga, options)]);
case 3:
case "end":
return _context5.stop();
}
}
}, _marked4$4);
}
var mapStateToProps = function mapStateToProps(state) {
return {
isLoggedIn: !!state.user.data.id,
username: state.user.data.name,
userAvatar: state.user.data.avatarLargeUrl
};
};
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
return {
onClickLogin: function onClickLogin() {
return dispatch(redirectToLogin());
},
onClickLogout: function onClickLogout() {
return dispatch(logout());
},
onClickSignup: function onClickSignup() {
return dispatch(redirectToSignup());
}
};
};
var HeaderWidget = reactRedux.connect(mapStateToProps, mapDispatchToProps)(components.HeaderWidget);
var messages = reactIntl.defineMessages({
resendActivationMail: {
id: 'user.containers.ResendActivationNag.resendActivationMail',
defaultMessage: 'Resend activation email'
},
close: {
id: 'user.containers.ResendActivationNag.close',
defaultMessage: 'Close'
}
});
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = _Reflect$construct__default['default'](Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct__default['default']) return false; if (_Reflect$construct__default['default'].sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(_Reflect$construct__default['default'](Date, [], function () {})); return true; } catch (e) { return false; } }
var ActivationNag = /*#__PURE__*/function (_Component) {
_inherits__default['default'](ActivationNag, _Component);
var _super = _createSuper(ActivationNag);
function ActivationNag() {
_classCallCheck__default['default'](this, ActivationNag);
return _super.apply(this, arguments);
}
_createClass__default['default'](ActivationNag, [{
key: "render",
value: function render() {
var _this$props = this.props,
activationMessage = _this$props.activationMessage,
resendActivationEnabled = _this$props.resendActivationEnabled,
resendActivationLoading = _this$props.resendActivationLoading,
onClickResendActivationMail = _this$props.onClickResendActivationMail,
onClose = _this$props.onClose,
intl = _this$props.intl;
return /*#__PURE__*/React__default['default'].createElement("div", {
className: "ActivationNag LoginTab-info"
}, /*#__PURE__*/React__default['default'].createElement(components.Nag, {
type: "success",
onClose: onClose,
closeLabel: intl.formatMessage(messages.close),
actions: function actions() {
return /*#__PURE__*/React__default['default'].createElement(components.Button, _extends__default['default']({
variant: "linkDark",
onClick: onClickResendActivationMail
}, !resendActivationEnabled ? {
disabled: true
} : {}), /*#__PURE__*/React__default['default'].createElement(reactIntl.FormattedMessage, messages.resendActivationMail), resendActivationLoading && /*#__PURE__*/React__default['default'].createElement(components.LoadingIcon, null));
}
}, activationMessage));
}
}]);
return ActivationNag;
}(React.Component);
_defineProperty__default['default'](ActivationNag, "propTypes", {
resendActivationLoading: PropTypes__default['default'].bool,
activationMessage: PropTypes__default['default'].string.isRequired,
resendActivationEnabled: PropTypes__default['default'].bool,
onClickResendActivationMail: PropTypes__default['default'].func.isRequired,
onClose: PropTypes__default['default'].func,
intl: reactIntl.intlShape.isRequired
});
_defineProperty__default['default'](ActivationNag, "defaultProps", {
resendActivationLoading: true,
resendActivationEnabled: true,
onClose: function onClose() {}
});
var mapStateToProps$1 = function mapStateToProps(state) {
return {
resendActivationLoading: state.user.resendActivation.loading,
resendActivationEnabled: state.user.resendActivation.enabled
};
};
var mapDispatchToProps$1 = function mapDispatchToProps(dispatch) {
return {
onClickResendActivationMail: function onClickResendActivationMail() {
return dispatch(resendActivationMail());
}
};
};
var ActivationNag$1 = reactRedux.connect(mapStateToProps$1, mapDispatchToProps$1)(reactIntl.injectIntl(ActivationNag));
function ownKeys$b(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (enumerableOnly) symbols = _filterInstanceProperty__default['default'](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default['default'](object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context; _forEachInstanceProperty__default['default'](_context = ownKeys$b(Object(source), true)).call(_context, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context2; _forEachInstanceProperty__default['default'](_context2 = ownKeys$b(Object(source))).call(_context2, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
module.exports = _objectSpread$b(_objectSpread$b(_objectSpread$b(_objectSpread$b(_objectSpread$b({}, actions), settingsActions), connectCalendarActions), SelectPrimaryCalendarActions), {}, {
createReducer: createReducer,
reducer: reducer,
createSettingsReducer: createSettingsReducer,
settingsReducer: settingsReducer,
createConnectCalendarReducer: createConnectCalendarReducer,
connectCalendarReducer: connectCalendarReducer,
createSelectPrimaryCalendarReducer: createSelectPrimaryCalendarReducer,
selectPrimaryCalendarReducer: selectPrimaryCalendarReducer,
loadUserSaga: loadUserSaga,
loadUserSettingsSaga: loadUserSettingsSaga,
loadUserConnectCalendarSaga: loadUserConnectCalendarSaga,
loadUserSelectPrimaryCalendarSaga: loadUserSelectPrimaryCalendarSaga,
createState: createState,
createSettingsState: createSettingsState,
createConnectCalendarState: createConnectCalendarState,
API: API,
HeaderWidget: HeaderWidget,
ActivationNag: ActivationNag$1
});