refactor: convert skin.citizen.scripts to packagedFiles

This commit is contained in:
alistair3149 2021-01-16 17:01:58 -05:00
parent 25822463a0
commit 56de894f6e
No known key found for this signature in database
GPG key ID: 94D081060FD3DD9C
5 changed files with 91 additions and 74 deletions

View file

@ -0,0 +1,42 @@
var searchToggle = document.getElementById( 'search-checkbox' ),
searchInput = document.getElementById( 'searchInput' ),
pageReady = require( ( 'mediawiki.page.ready' ) );
/**
* Focus in search box when search toggle checkbox is checked.
*
* @constructor
*/
function searchInputFocus() {
if ( searchToggle.checked !== false ) {
searchInput.focus();
}
}
/**
* Check search toggle checkbox when search box is in focus.
*
* @constructor
*/
function searchToggleCheck() {
if ( searchToggle.checked === false ) {
searchToggle.checked = true;
}
}
/**
* @return {void}
*/
function init() {
searchToggle.addEventListener( 'click', searchInputFocus );
searchInput.addEventListener( 'focus', searchToggleCheck );
pageReady.loadSearchModule(
// Decide between new Citizen implementation or core
mw.config.get( 'wgCitizenEnableSearch' ) ?
'skins.citizen.scripts.search' : 'mediawiki.searchSuggest'
);
}
module.exports = {
init: init
};

View file

@ -0,0 +1,12 @@
var themeToggle = require( './themeToggle.js' ),
search = require( './search.js' );
/**
* @return {void}
*/
function main() {
themeToggle.init();
search.init();
}
main();

View file

@ -1,72 +0,0 @@
/*
* Citizen - Core JS
* https://starcitizen.tools
*/
var searchToggle = document.getElementById( 'search-checkbox' ),
searchInput = document.getElementById( 'searchInput' ),
pageReady = require( ( 'mediawiki.page.ready' ) );
/**
* Focus in search box when search toggle checkbox is checked.
*
* @constructor
*/
function searchInputFocus() {
if ( searchToggle.checked !== false ) {
searchInput.focus();
}
}
/**
* Check search toggle checkbox when search box is in focus.
*
* @constructor
*/
function searchToggleCheck() {
if ( searchToggle.checked === false ) {
searchToggle.checked = true;
}
}
function main() {
searchToggle.addEventListener( 'click', searchInputFocus );
searchInput.addEventListener( 'focus', searchToggleCheck );
pageReady.loadSearchModule(
// Decide between new Citizen implementation or core
mw.config.get( 'wgCitizenEnableSearch' ) ?
'skins.citizen.scripts.search' : 'mediawiki.searchSuggest'
);
}
main();
( function () {
var theme = window.mw.cookie.get( 'skin-citizen-theme' );
var toggleBtn = document.getElementById( 'theme-toggle' );
// * theme-toggle-light
// * theme-toggle-dark
toggleBtn.classList.add( 'theme-toggle-' + theme );
toggleBtn.addEventListener( 'click', function ( clickEvent ) {
try {
theme = theme === 'dark' ? 'light' : 'dark';
clickEvent.target.classList.remove( 'theme-toggle-light', 'theme-toggle-dark' );
// * theme-toggle-light
// * theme-toggle-dark
clickEvent.target.classList.add( 'theme-toggle-' + theme );
try {
window.mw.cookie.set( 'skin-citizen-theme', null );
window.mw.cookie.set( 'skin-citizen-theme', theme );
window.mw.cookie.set( 'skin-citizen-theme-override', '1' );
} catch ( e ) {
}
window.switchTheme();
} catch ( e ) {
}
} );
}() );

View file

@ -0,0 +1,33 @@
function init() {
var theme = window.mw.cookie.get( 'skin-citizen-theme' );
var toggleBtn = document.getElementById( 'theme-toggle' );
// * theme-toggle-light
// * theme-toggle-dark
toggleBtn.classList.add( 'theme-toggle-' + theme );
toggleBtn.addEventListener( 'click', function ( clickEvent ) {
try {
theme = theme === 'dark' ? 'light' : 'dark';
clickEvent.target.classList.remove( 'theme-toggle-light', 'theme-toggle-dark' );
// * theme-toggle-light
// * theme-toggle-dark
clickEvent.target.classList.add( 'theme-toggle-' + theme );
try {
window.mw.cookie.set( 'skin-citizen-theme', null );
window.mw.cookie.set( 'skin-citizen-theme', theme );
window.mw.cookie.set( 'skin-citizen-theme-override', '1' );
} catch ( e ) {
}
window.switchTheme();
} catch ( e ) {
}
} );
}
module.exports = {
init: init
};

View file

@ -127,8 +127,10 @@
"styles": [ "resources/skins.citizen.styles.toc/skins.citizen.styles.toc.less" ]
},
"skins.citizen.scripts": {
"scripts": [
"resources/skins.citizen.scripts/skins.citizen.scripts.js"
"packageFiles": [
"resources/skins.citizen.scripts/skin.js",
"resources/skins.citizen.scripts/themeToggle.js",
"resources/skins.citizen.scripts/search.js"
],
"dependencies": [
"mediawiki.page.ready",