@atlaskit/editor-plugin-selection-toolbar
Version:
@atlaskit/editor-plugin-selection-toolbar for @atlaskit/editor-core
31 lines • 1.35 kB
JavaScript
import { useEffect } from 'react';
import { bind } from 'bind-event-listener';
import { logException } from '@atlaskit/editor-common/monitoring';
export const PageVisibilityWatcher = ({
api,
userPreferencesProvider
}) => {
useEffect(() => {
if (!userPreferencesProvider || !api) {
return;
}
const refreshPrefrerence = async () => {
if (document.visibilityState === 'visible') {
var _api$selectionToolbar, _api$selectionToolbar2, _api$selectionToolbar3;
try {
await userPreferencesProvider.loadPreferences();
} catch (error) {
logException(error, {
location: 'editor-plugin-selection-toolbar/PageVisibilityWatcher'
});
}
api === null || api === void 0 ? void 0 : (_api$selectionToolbar = api.selectionToolbar) === null || _api$selectionToolbar === void 0 ? void 0 : (_api$selectionToolbar2 = _api$selectionToolbar.actions) === null || _api$selectionToolbar2 === void 0 ? void 0 : (_api$selectionToolbar3 = _api$selectionToolbar2.refreshToolbarDocking) === null || _api$selectionToolbar3 === void 0 ? void 0 : _api$selectionToolbar3.call(_api$selectionToolbar2);
}
};
return bind(document, {
type: 'visibilitychange',
listener: refreshPrefrerence
});
}, [api, userPreferencesProvider]);
return null;
};