| 123456789101112131415161718192021222324252627 | // @flow
import { StateListenerRegistry } from '../base/redux';
import { setFatalError } from './actions';
declare var APP: Object;
/**
 * State listener which emits the {@code fatalErrorOccurred} action which works
 * as a catch all for critical errors which have not been claimed by any other
 * feature for error recovery (the recoverable flag is not set).
 */
StateListenerRegistry.register(
    /* selector */ state => {
        const { error: conferenceError } = state['features/base/conference'];
        const { error: configError } = state['features/base/config'];
        const { error: connectionError } = state['features/base/connection'];
        return configError || connectionError || conferenceError;
    },
    /* listener */ (error, { dispatch }) => {
        error
            && typeof error.recoverable === 'undefined'
            && dispatch(setFatalError(error));
    }
);
 |