WordPress/wp-content/themes/twentytwentyone/assets/js/editor-dark-mode-support.js
desrosj 6daeadb85e Twenty Twenty-One: Correct @since inline documentation tags.
Previously, `1.0.0` was used for the version. This is inconsistent with the versioning used in the other default themes, which use use X.X and not X.X.X.

This change corrects all `1.0.0` occurrences to `1.0`, and adds the additional context of `Twenty Twenty-One` to avoid confusion with `WordPress 1.0`.

Props SergeyBiryukov, poena.
Fixes #51958.
Built from https://develop.svn.wordpress.org/trunk@49826


git-svn-id: http://core.svn.wordpress.org/trunk@49545 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-12-17 14:57:07 +00:00

45 lines
1.2 KiB
JavaScript

/* global twentytwentyoneIsDarkMode, setTimeout */
// Check the color scheme preference and inject the classes if necessary.
if ( document.body.classList.contains( 'twentytwentyone-supports-dark-theme' ) ) {
twentytwentyoneDarkModeEditorInit();
}
/**
* Once the editor loads, add the dark mode class.
*
* Wait for the editor to load by periodically checking for an element, then we add the classes.
*
* @since Twenty Twenty-One 1.0
*
* @param {number} attempt Track the number of tries
* @return {void}
*/
function twentytwentyoneDarkModeEditorInit( attempt ) {
var container = document.querySelector( '.block-editor__typewriter' ),
maxAttempts = 8;
// Set the initial attempt if it's undefined.
attempt = attempt || 0;
if ( twentytwentyoneIsDarkMode() ) {
if ( null === container ) {
// Try again.
if ( attempt < maxAttempts ) {
setTimeout(
function() {
twentytwentyoneDarkModeEditorInit( attempt + 1 );
},
// Double the delay, give the server some time to breathe.
25 * Math.pow( 2, attempt )
);
}
return;
}
document.body.classList.add( 'is-dark-theme' );
document.documentElement.classList.add( 'is-dark-theme' );
container.classList.add( 'is-dark-theme' );
}
}