The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/client/components/providers/ConnectionStatusProvider.js

30 lines
836 B

import { Meteor } from 'meteor/meteor';
import React, { createContext, useContext, useMemo } from 'react';
import { useReactiveValue } from '../../hooks/useReactiveValue';
export const ConnectionStatusContext = createContext({
status: {
connected: true,
status: 'connected',
retryCount: 0,
},
reconnect: () => {},
});
export function ConnectionStatusProvider({ children }) {
const status = useReactiveValue(() => ({ ...Meteor.status() }));
const contextValue = useMemo(() => ({
status,
reconnect: Meteor.reconnect,
}), [status]);
return <ConnectionStatusContext.Provider value={contextValue}>
{children}
</ConnectionStatusContext.Provider>;
}
export const useConnectionStatus = () => useContext(ConnectionStatusContext).status;
export const useReconnect = () => useContext(ConnectionStatusContext).reconnect;