/**
 * Copies interwiki links to main menu
 *
 * Temporary solution to T287206, can be removed when the new ULS built in Vue.js
 * has been released and contains this
 */
function addInterwikiLinkToMainMenu() {
	const editLink = /** @type {HTMLElement|null} */ (
		document.querySelector( '#p-lang-btn .wbc-editpage' )
	);

	if ( !editLink ) {
		return;
	}
	const title = editLink.getAttribute( 'title' ) || '';

	const addInterlanguageLink = mw.util.addPortletLink(
		'p-tb',
		editLink.getAttribute( 'href' ) || '#',
		// Original text is "Edit links".
		// Since its taken out of context the title is more descriptive.
		title,
		'wbc-editpage',
		title
	);

	if ( addInterlanguageLink ) {
		addInterlanguageLink.addEventListener( 'click', ( /** @type {Event} */ e ) => {
			e.preventDefault();
			// redirect to the detached and original edit link
			editLink.click();
		} );
	}
}

/**
 * Checks if ULS is disabled, and makes sure the language dropdown continues
 * to work if it is.
 */
function checkIfULSDisabled() {
	const langModuleState = mw.loader.getState( 'ext.uls.interface' );
	if ( langModuleState === null || langModuleState === 'registered' ) {
		document.documentElement.classList.add( 'vector-uls-disabled' );
	}
}

/**
 * Initialize the language button.
 */
module.exports = function () {
	checkIfULSDisabled();
	addInterwikiLinkToMainMenu();
};
