@r3l/app
Version:
138 lines (111 loc) • 4.33 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = _interopRequireDefault(require("react"));
var _reactRedux = require("react-redux");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _utils = require("../../utils");
var _activity = require("../activity/activity.actions");
var _styles = require("../../styles");
var _auth = require("../auth/auth.actions");
var _banner = _interopRequireDefault(require("./banner.mobile"));
var _banner2 = _interopRequireDefault(require("./banner.desktop"));
var TEXT_DEFAULTS = {
messageText: 'Get alerted when people respond to your post',
actionText: 'Enable Notifications',
dismissText: 'Dismiss'
};
var MESSAGE_TEXT_DEFAULTS = {
upvoteComment: 'Get notified when someone comments on this thread',
upvotePost: 'Get notified when you earn rewards for upvoting posts',
createComment: 'Get notified when someone replies to your comment',
createPost: 'Get notified when someone replies to your post'
};
PushNotification.propTypes = {
messageText: _propTypes.default.string,
actionText: _propTypes.default.string,
dismissText: _propTypes.default.string,
type: _propTypes.default.string
};
function PushNotification(_ref) {
var _ref$messageText = _ref.messageText,
messageText = _ref$messageText === void 0 ? TEXT_DEFAULTS.messageText : _ref$messageText,
_ref$actionText = _ref.actionText,
actionText = _ref$actionText === void 0 ? TEXT_DEFAULTS.actionText : _ref$actionText,
_ref$dismissText = _ref.dismissText,
dismissText = _ref$dismissText === void 0 ? TEXT_DEFAULTS.dismissText : _ref$dismissText,
type = _ref.type;
var user = (0, _reactRedux.useSelector)(function (state) {
return state.auth.user;
});
var dispatch = (0, _reactRedux.useDispatch)();
var handleClick = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", dispatch((0, _activity.enableDesktopNotifications)()));
case 1:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function handleClick() {
return _ref2.apply(this, arguments);
};
}();
var handleClickMobile = /*#__PURE__*/function () {
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
return _context2.abrupt("return", dispatch((0, _auth.enableMobileNotifications)(user)));
case 1:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function handleClickMobile() {
return _ref3.apply(this, arguments);
};
}();
var handleDismiss = function handleDismiss() {
dispatch((0, _activity.hideBannerPrompt)());
var now = new Date().getTime();
_utils.storage.set('pushDismissed', now);
};
var mainText = messageText || MESSAGE_TEXT_DEFAULTS[type];
if (_styles.isNative) {
(0, _banner.default)({
title: 'Stay up to date',
messageText: mainText,
// actionText: 'Enable',
// dismissText,
onDismiss: handleDismiss,
onClick: handleClickMobile
});
dispatch((0, _activity.hideBannerPrompt)());
return null;
}
return /*#__PURE__*/_react.default.createElement(_banner2.default, {
onClick: handleClick,
onDismiss: handleDismiss,
messageText: mainText + ': ',
dismissText: dismissText,
actionText: actionText
});
}
var _default = PushNotification;
exports.default = _default;
//# sourceMappingURL=notificationBanner.js.map