| 123456789101112131415161718192021222324252627282930313233343536 | // @flow
import { UPDATE_DEVICE_LIST } from '../base/devices';
import { MiddlewareRegistry } from '../base/redux';
declare var APP: Object;
/**
 * Implements the middleware of the feature device-selection.
 *
 * @param {Store} store - Redux store.
 * @returns {Function}
 */
// eslint-disable-next-line no-unused-vars
MiddlewareRegistry.register(store => next => action => {
    const result = next(action);
    if (action.type === UPDATE_DEVICE_LIST) {
        const state = store.getState();
        const { popupDialogData } = state['features/device-selection'];
        const { availableDevices } = state['features/base/devices'];
        if (popupDialogData) {
            popupDialogData.transport.sendEvent({
                name: 'deviceListChanged',
                devices: availableDevices
            });
        }
        if (typeof APP !== 'undefined') {
            APP.API.notifyDeviceListChanged(availableDevices);
        }
    }
    return result;
});
 |