@atlaskit/editor-plugin-selection-toolbar
Version:
@atlaskit/editor-plugin-selection-toolbar for @atlaskit/editor-core
60 lines (59 loc) • 2.68 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PageVisibilityWatcher = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = require("react");
var _bindEventListener = require("bind-event-listener");
var _monitoring = require("@atlaskit/editor-common/monitoring");
var PageVisibilityWatcher = exports.PageVisibilityWatcher = function PageVisibilityWatcher(_ref) {
var api = _ref.api,
userPreferencesProvider = _ref.userPreferencesProvider;
(0, _react.useEffect)(function () {
if (!userPreferencesProvider || !api) {
return;
}
var refreshPrefrerence = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var _api$selectionToolbar, _api$selectionToolbar2;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
if (!(document.visibilityState === 'visible')) {
_context.next = 10;
break;
}
_context.prev = 1;
_context.next = 4;
return userPreferencesProvider.loadPreferences();
case 4:
_context.next = 9;
break;
case 6:
_context.prev = 6;
_context.t0 = _context["catch"](1);
(0, _monitoring.logException)(_context.t0, {
location: 'editor-plugin-selection-toolbar/PageVisibilityWatcher'
});
case 9:
api === null || api === void 0 || (_api$selectionToolbar = api.selectionToolbar) === null || _api$selectionToolbar === void 0 || (_api$selectionToolbar = _api$selectionToolbar.actions) === null || _api$selectionToolbar === void 0 || (_api$selectionToolbar2 = _api$selectionToolbar.refreshToolbarDocking) === null || _api$selectionToolbar2 === void 0 || _api$selectionToolbar2.call(_api$selectionToolbar);
case 10:
case "end":
return _context.stop();
}
}, _callee, null, [[1, 6]]);
}));
return function refreshPrefrerence() {
return _ref2.apply(this, arguments);
};
}();
return (0, _bindEventListener.bind)(document, {
type: 'visibilitychange',
listener: refreshPrefrerence
});
}, [api, userPreferencesProvider]);
return null;
};