@r3l/app
Version:
463 lines (381 loc) • 14.8 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setActivity = setActivity;
exports.resetActivity = resetActivity;
exports.clearCount = clearCount;
exports.setCount = setCount;
exports.getActivity = getActivity;
exports.markRead = markRead;
exports.createNotification = createNotification;
exports.getNotificationCount = getNotificationCount;
exports.showBannerPrompt = showBannerPrompt;
exports.hideBannerPrompt = hideBannerPrompt;
exports.enableDesktopNotifications = enableDesktopNotifications;
exports.showPushNotificationPrompt = exports.showBetPrompt = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var types = _interopRequireWildcard(require("../../core/actionTypes"));
var errorActions = _interopRequireWildcard(require("../ui/error.actions"));
var _utils = require("../../utils");
var _notifications = require("../../utils/notifications");
var _auth = require("../auth/auth.actions");
var _env = require("../../utils/env");
var _notificationTimes = require("./notificationTimes");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(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) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var PushNotification;
if (process.env.WEB !== 'true') {
PushNotification = require('react-native-push-notification');
}
var apiServer = "".concat(_env.API_URL, "/api/notification");
var reqOptions = function reqOptions(tk) {
return {
credentials: 'include',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer ".concat(tk)
}
};
};
function setActivity(data, type, index) {
return {
type: types.SET_ACTIVITY,
payload: {
data: data,
type: type,
index: index
}
};
}
function resetActivity(data) {
return {
type: 'RESET_ACTIVITY',
payload: data
};
}
function clearCount() {
return {
type: 'CLEAR_COUNT'
};
}
function setCount(data) {
return {
type: types.SET_COUNT,
payload: data
};
}
function getActivity(skip) {
return /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(dispatch) {
var type, res;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
type = 'personal';
_context.next = 4;
return dispatch(_utils.api.request({
method: 'GET',
endpoint: 'notification',
path: '/',
auth: true,
query: {
skip: skip
}
}));
case 4:
res = _context.sent;
dispatch(setActivity(res, type, skip));
dispatch(errorActions.setError('activity', false));
_context.next = 12;
break;
case 9:
_context.prev = 9;
_context.t0 = _context["catch"](0);
errorActions.setError('activity', true, _context.t0.message);
case 12:
case "end":
return _context.stop();
}
}
}, _callee, null, [[0, 9]]);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}();
}
function markRead() {
return function (dispatch) {
return _utils.storage.getToken().then(function (tk) {
return fetch("".concat(apiServer, "/markread"), _objectSpread(_objectSpread({}, reqOptions(tk)), {}, {
method: 'PUT'
}));
}).then(function () {
dispatch(clearCount());
}).catch(null);
};
}
function createNotification(obj) {
return function () {
return _utils.storage.getToken().then(function (tk) {
return fetch("".concat(apiServer), _objectSpread(_objectSpread({}, reqOptions(tk)), {}, {
method: 'POST',
body: JSON.stringify(obj)
}));
}).catch(null);
};
}
function getNotificationCount() {
return /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(dispatch) {
var res;
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
_context2.next = 3;
return dispatch(_utils.api.request({
method: 'GET',
endpoint: 'notification',
path: '/unread',
auth: true
}));
case 3:
res = _context2.sent;
dispatch(setCount(res.unread));
_context2.next = 9;
break;
case 7:
_context2.prev = 7;
_context2.t0 = _context2["catch"](0);
case 9:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[0, 7]]);
}));
return function (_x2) {
return _ref2.apply(this, arguments);
};
}();
}
function showBannerPrompt(promptType, promptProps) {
return {
type: types.SHOW_BANNER_PROMPT,
payload: {
promptType: promptType,
promptProps: promptProps
}
};
}
function hideBannerPrompt(notification) {
return {
type: types.HIDE_BANNER_PROMPT,
payload: notification
};
}
function enableDesktopNotifications() {
return /*#__PURE__*/function () {
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(dispatch) {
var subscription;
return _regenerator.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
_context3.next = 3;
return (0, _notifications.initPushNotifications)();
case 3:
subscription = _context3.sent;
dispatch((0, _auth.updateNotificationSettings)({
desktop: {
all: true
}
}, subscription.toJSON()));
dispatch(hideBannerPrompt());
_context3.next = 11;
break;
case 8:
_context3.prev = 8;
_context3.t0 = _context3["catch"](0);
console.log(_context3.t0); // eslint-disable-line
case 11:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[0, 8]]);
}));
return function (_x3) {
return _ref3.apply(this, arguments);
};
}();
}
var showBetPrompt = /*#__PURE__*/function () {
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(dispatch) {
var isDismissed;
return _regenerator.default.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return _utils.storage.isDismissed('betDismissed', _notificationTimes.SHOW_BET_PROMPT_AFTER_DAYS);
case 2:
isDismissed = _context4.sent;
if (isDismissed) {
_context4.next = 5;
break;
}
return _context4.abrupt("return", dispatch(showBannerPrompt('bet')));
case 5:
return _context4.abrupt("return", false);
case 6:
case "end":
return _context4.stop();
}
}
}, _callee4);
}));
return function showBetPrompt(_x4) {
return _ref4.apply(this, arguments);
};
}();
exports.showBetPrompt = showBetPrompt;
var showPushNotificationPrompt = function showPushNotificationPrompt() {
var promptProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return /*#__PURE__*/function () {
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(dispatch) {
return _regenerator.default.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
if (!(process.env.BROWSER === true)) {
_context5.next = 2;
break;
}
return _context5.abrupt("return", handleDesktopPrompt({
dispatch: dispatch,
promptProps: promptProps
}));
case 2:
return _context5.abrupt("return", handleMobilePrompt({
dispatch: dispatch,
promptProps: promptProps
}));
case 3:
case "end":
return _context5.stop();
}
}
}, _callee5);
}));
return function (_x5) {
return _ref5.apply(this, arguments);
};
}();
};
exports.showPushNotificationPrompt = showPushNotificationPrompt;
function handleDesktopPrompt(_x6) {
return _handleDesktopPrompt.apply(this, arguments);
}
function _handleDesktopPrompt() {
_handleDesktopPrompt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(_ref6) {
var dispatch, promptProps, isDismissed;
return _regenerator.default.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
dispatch = _ref6.dispatch, promptProps = _ref6.promptProps;
if (!(typeof Notification !== 'undefined' && (Notification.permission === 'granted' || Notification.permission === 'denied'))) {
_context6.next = 3;
break;
}
return _context6.abrupt("return", false);
case 3:
_context6.next = 5;
return _utils.storage.isDismissed('pushDismissed', _notificationTimes.SHOW_DESKTOP_PROMPT_AFTER_DAYS);
case 5:
isDismissed = _context6.sent;
if (!isDismissed) {
_context6.next = 8;
break;
}
return _context6.abrupt("return", false);
case 8:
return _context6.abrupt("return", dispatch(showBannerPrompt('push', promptProps)));
case 9:
case "end":
return _context6.stop();
}
}
}, _callee6);
}));
return _handleDesktopPrompt.apply(this, arguments);
}
function handleMobilePrompt(_x7) {
return _handleMobilePrompt.apply(this, arguments);
}
function _handleMobilePrompt() {
_handleMobilePrompt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(_ref7) {
var dispatch, promptProps, permissions, isDismissed;
return _regenerator.default.wrap(function _callee7$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
dispatch = _ref7.dispatch, promptProps = _ref7.promptProps;
if (PushNotification) {
_context7.next = 3;
break;
}
return _context7.abrupt("return", false);
case 3:
_context7.next = 5;
return new Promise(function (resolve, reject) {
PushNotification.checkPermissions(function (resp) {
if (!resp) return reject();
return resolve(resp);
});
});
case 5:
permissions = _context7.sent;
if (!permissions.alert) {
_context7.next = 8;
break;
}
return _context7.abrupt("return", false);
case 8:
_context7.next = 10;
return _utils.storage.isDismissed('pushDismissed', _notificationTimes.SHOW_MOBILE_PROMPT_AFTER_DAYS);
case 10:
isDismissed = _context7.sent;
if (!isDismissed) {
_context7.next = 13;
break;
}
return _context7.abrupt("return", false);
case 13:
return _context7.abrupt("return", dispatch(showBannerPrompt('push', _objectSpread(_objectSpread({}, promptProps), {}, {
isMobile: true
}))));
case 14:
case "end":
return _context7.stop();
}
}
}, _callee7);
}));
return _handleMobilePrompt.apply(this, arguments);
}
//# sourceMappingURL=activity.actions.js.map