| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /* 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' );
- }
- }
|