wikimedia/mediawiki-extensions-MobileFrontend

View on GitHub
src/mobile.startup/mediaViewer/overlay.js

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Internal for use inside Minerva only. See {@link module:mobile.startup} for access.
 *
 * @module mobile.startup/mediaViewer
 */
const m = require( '../moduleLoaderSingleton' ),
    promisedView = require( '../promisedView' ),
    util = require( '../util' ),
    header = require( '../headers' ).header,
    icons = require( '../icons' ),
    Overlay = require( '../Overlay' );

/**
 * Produce an overlay for mediaViewer
 *
 * @name overlay
 * @memberof module:mobile.startup/mediaViewer
 * @param {Object} options
 * @return {module:mobile.startup/Overlay}
 */
function mediaViewerOverlay( options ) {
    const overlay = Overlay.make(
        {
            headers: [
                header( '', [], icons.cancel( 'gray' ) )
            ],
            className: 'overlay media-viewer'
        },
        promisedView(
            util.Promise.all( [
                mw.loader.using( 'mobile.mediaViewer' )
            ] ).then( () => {
                const ImageCarousel = m.require( 'mobile.mediaViewer' ).ImageCarousel;
                return new ImageCarousel( options );
            } )
        )
    );

    return overlay;
}

module.exports = mediaViewerOverlay;