RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/providers/ConnectionStatusProvider.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import type { ConnectionStatusContextValue } from '@rocket.chat/ui-contexts';
import { ConnectionStatusContext } from '@rocket.chat/ui-contexts';
import { Meteor } from 'meteor/meteor';
import type { ReactNode } from 'react';
import React from 'react';

import { useReactiveValue } from '../hooks/useReactiveValue';

const getValue = (): ConnectionStatusContextValue => ({
    ...Meteor.status(),
    reconnect: Meteor.reconnect,
});

type ConnectionStatusProviderProps = {
    children?: ReactNode;
};

const ConnectionStatusProvider = ({ children }: ConnectionStatusProviderProps) => {
    const status = useReactiveValue(getValue);

    return <ConnectionStatusContext.Provider children={children} value={status} />;
};

export default ConnectionStatusProvider;