| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | // @flow
import Platform from '../react/Platform';
/**
 * Returns whether or not the current environment is a mobile device.
 *
 * @returns {boolean}
 */
export function isMobileBrowser() {
    return Platform.OS === 'android' || Platform.OS === 'ios';
}
/**
 * Returns whether or not the current environment is an ios mobile device.
 *
 * @returns {boolean}
 */
export function isIosMobileBrowser() {
    return Platform.OS === 'ios';
}
/**
 * Checks whether the chrome extensions defined in the config file are installed or not.
 *
 * @param {Object} config - Objects containing info about the configured extensions.
 *
 * @returns {Promise[]}
 */
export function checkChromeExtensionsInstalled(config: Object = {}) {
    const isExtensionInstalled = info => new Promise(resolve => {
        const img = new Image();
        img.src = `chrome-extension://${info.id}/${info.path}`;
        img.setAttribute('aria-hidden', 'true');
        img.onload = function() {
            resolve(true);
        };
        img.onerror = function() {
            resolve(false);
        };
    });
    const extensionInstalledFunction = info => isExtensionInstalled(info);
    return Promise.all(
        (config.chromeExtensionsInfo || []).map(info => extensionInstalledFunction(info))
    );
}
 |