UNPKG

@atlaskit/editor-plugin-synced-block

Version:

SyncedBlock plugin for @atlaskit/editor-core

23 lines 1.15 kB
import { useEffect } from 'react'; import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'; import { isOfflineMode } from '@atlaskit/editor-plugin-connectivity'; // Component that manages synced block data synchronization. // Uses provider-based GraphQL subscriptions for updates when online. // Falls back to polling at regular intervals when offline. export var SyncBlockRefresher = function SyncBlockRefresher(_ref) { var syncBlockStoreManager = _ref.syncBlockStoreManager, api = _ref.api; var _useSharedPluginState = useSharedPluginStateWithSelector(api, ['connectivity'], function (states) { var _states$connectivityS; return { mode: (_states$connectivityS = states.connectivityState) === null || _states$connectivityS === void 0 ? void 0 : _states$connectivityS.mode }; }), mode = _useSharedPluginState.mode; var isOnline = !isOfflineMode(mode); useEffect(function () { var useRealTimeSubscriptions = isOnline; syncBlockStoreManager.referenceManager.setRealTimeSubscriptionsEnabled(useRealTimeSubscriptions); }, [syncBlockStoreManager, isOnline]); return null; };