ringcentral-widgets
Version:
RingCentral Integration Widget Library
142 lines (122 loc) • 5.29 kB
JavaScript
;
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
require("core-js/modules/es6.promise");
require("core-js/modules/es6.object.to-string");
require("regenerator-runtime/runtime");
require("react-widgets/dist/css/react-widgets.css");
var _react = _interopRequireDefault(require("react"));
var _sleep = _interopRequireDefault(require("ringcentral-integration/lib/sleep"));
var _isSafari = _interopRequireDefault(require("../../lib/isSafari"));
var _MeetingConfigs = _interopRequireDefault(require("../MeetingConfigs"));
var _styles = _interopRequireDefault(require("./styles.scss"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
var MeetingPanel = function MeetingPanel(props) {
var update = props.update,
meeting = props.meeting,
hidden = props.hidden,
disabled = props.disabled,
invite = props.invite,
currentLocale = props.currentLocale,
ScheduleButton = props.scheduleButton,
recipientsSection = props.recipientsSection,
showWhen = props.showWhen,
showDuration = props.showDuration,
showRecurringMeeting = props.showRecurringMeeting,
openNewWindow = props.openNewWindow,
meetingOptionToggle = props.meetingOptionToggle,
passwordPlaceholderEnable = props.passwordPlaceholderEnable,
audioOptionToggle = props.audioOptionToggle,
onOK = props.onOK,
init = props.init,
showSaveAsDefault = props.showSaveAsDefault,
disableSaveAsDefault = props.disableSaveAsDefault,
launchMeeting = props.launchMeeting,
enablePersonalMeeting = props.enablePersonalMeeting,
personalMeetingId = props.personalMeetingId,
switchUsePersonalMeetingId = props.switchUsePersonalMeetingId;
return /*#__PURE__*/_react["default"].createElement("div", {
className: _styles["default"].meetingPanel
}, !hidden ? /*#__PURE__*/_react["default"].createElement(_MeetingConfigs["default"], {
update: update,
init: init,
meeting: meeting,
disabled: disabled,
currentLocale: currentLocale,
recipientsSection: recipientsSection,
showWhen: showWhen,
showDuration: showDuration,
showRecurringMeeting: showRecurringMeeting,
meetingOptionToggle: meetingOptionToggle,
passwordPlaceholderEnable: passwordPlaceholderEnable,
audioOptionToggle: audioOptionToggle,
enablePersonalMeeting: enablePersonalMeeting,
personalMeetingId: personalMeetingId,
switchUsePersonalMeetingId: switchUsePersonalMeetingId
}) : null, ScheduleButton && /*#__PURE__*/_react["default"].createElement(ScheduleButton, {
currentLocale: currentLocale,
hidden: hidden,
disabled: disabled,
meeting: meeting,
onOK: onOK,
onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
var opener;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (disabled) {
_context.next = 6;
break;
}
_context.next = 3;
return (0, _sleep["default"])(100);
case 3:
/**
* HACK: for safari, we can only open new tab within click event callback's synchronous call stack
* so we have to couple the UI with logic in here:(
* https://stackoverflow.com/a/24327319
*/
opener = openNewWindow && (0, _isSafari["default"])() ? window.open() : null;
_context.next = 6;
return invite(meeting, opener);
case 6:
case "end":
return _context.stop();
}
}
}, _callee);
})),
update: update,
showSaveAsDefault: showSaveAsDefault,
disableSaveAsDefault: disableSaveAsDefault,
launchMeeting: launchMeeting
}));
};
MeetingPanel.defaultProps = {
invite: function invite() {},
recipientsSection: undefined,
disabled: false,
hidden: false,
showWhen: true,
showDuration: true,
showRecurringMeeting: true,
openNewWindow: true,
meetingOptionToggle: false,
passwordPlaceholderEnable: false,
audioOptionToggle: false,
onOK: undefined,
scheduleButton: undefined,
enablePersonalMeeting: false,
showSaveAsDefault: false,
disableSaveAsDefault: false,
launchMeeting: undefined
};
var _default = MeetingPanel;
exports["default"] = _default;
//# sourceMappingURL=index.js.map