Page MenuHomeWickedGov Phorge

languageInfoOverlay.js
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

languageInfoOverlay.js

const
m = require( '../moduleLoaderSingleton' ),
getDeviceLanguage = require( './getDeviceLanguage' ),
Overlay = require( '../Overlay' ),
promisedView = require( '../promisedView' );
/**
* @ignore
* @param {LanguageInfo} languageInfo
* @param {boolean} showSuggestedLanguages If the suggested languages section
* should be rendered.
* @return {jQuery.Promise} Resolves to LanguageSearcher
*/
function loadLanguageInfoSearcher( languageInfo, showSuggestedLanguages ) {
return mw.loader.using( 'mobile.languages.structured' ).then( () => languageInfo.getLanguages() ).then( ( data ) => {
const LanguageSearcher = m.require( 'mobile.languages.structured/LanguageSearcher' );
return new LanguageSearcher( {
languages: data.languages,
variants: data.variants,
showSuggestedLanguages,
deviceLanguage: getDeviceLanguage( navigator )
} );
} );
}
/**
* Factory function that returns a language info featured instance of an Overlay
*
* @ignore
* @function
* @memberof module:mobile.startup/languages
* @param {module:mobile.startup/languages~LanguageInfo} languageInfo
* @param {boolean} showSuggestedLanguages If the suggested languages section
* should be rendered.
* @return {module:mobile.startup/Overlay}
*/
function languageInfoOverlay( languageInfo, showSuggestedLanguages ) {
return Overlay.make(
{
heading: mw.msg( 'mobile-frontend-language-heading' ),
className: 'overlay language-info-overlay'
}, promisedView( loadLanguageInfoSearcher( languageInfo, showSuggestedLanguages ) )
);
}
// To make knowing when async logic has resolved easier in tests
languageInfoOverlay.test = {
loadLanguageInfoSearcher
};
module.exports = languageInfoOverlay;

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 18, 22:08 (1 d, 15 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
40/87/ca1a21f424184a3e7a895420963e
Default Alt Text
languageInfoOverlay.js (1 KB)

Event Timeline