UNPKG

@atlaskit/editor-plugin-synced-block

Version:

SyncedBlock plugin for @atlaskit/editor-core

25 lines 1.02 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 const SyncBlockRefresher = ({ syncBlockStoreManager, api }) => { const { mode } = useSharedPluginStateWithSelector(api, ['connectivity'], states => { var _states$connectivityS; return { mode: (_states$connectivityS = states.connectivityState) === null || _states$connectivityS === void 0 ? void 0 : _states$connectivityS.mode }; }); const isOnline = !isOfflineMode(mode); useEffect(() => { const useRealTimeSubscriptions = isOnline; syncBlockStoreManager.referenceManager.setRealTimeSubscriptionsEnabled(useRealTimeSubscriptions); }, [syncBlockStoreManager, isOnline]); return null; };