From 73c1b28ec731af4f017e59073905d30c72c79614 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers Date: Tue, 9 Feb 2021 14:54:48 +0000 Subject: [PATCH] Twenty Twenty-One: Prevent Dark Mode related JavaScript error. This prevents an `Uncaught TypeError` in the block editor when scrolling caused by the absence of a `#dark-mode-toggler` element. Props ocean90, mukesh27, justinahinon. Fixes #52473. git-svn-id: https://develop.svn.wordpress.org/trunk@50269 602fd350-edb4-49c9-b593-d223f7449a82 --- .../twentytwentyone/assets/js/dark-mode-toggler.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/wp-content/themes/twentytwentyone/assets/js/dark-mode-toggler.js b/src/wp-content/themes/twentytwentyone/assets/js/dark-mode-toggler.js index 22f5e3e15f..f5519d06e4 100644 --- a/src/wp-content/themes/twentytwentyone/assets/js/dark-mode-toggler.js +++ b/src/wp-content/themes/twentytwentyone/assets/js/dark-mode-toggler.js @@ -44,7 +44,9 @@ function darkModeInitialLoad() { } function darkModeRepositionTogglerOnScroll() { - var prevScroll = window.scrollY || document.documentElement.scrollTop, + + var toggler = document.getElementById( 'dark-mode-toggler' ), + prevScroll = window.scrollY || document.documentElement.scrollTop, currentScroll, checkScroll = function() { @@ -53,13 +55,16 @@ function darkModeRepositionTogglerOnScroll() { currentScroll + ( window.innerHeight * 1.5 ) > document.body.clientHeight || currentScroll < prevScroll ) { - document.getElementById( 'dark-mode-toggler' ).classList.remove( 'hide' ); + toggler.classList.remove( 'hide' ); } else if ( currentScroll > prevScroll && 250 < currentScroll ) { - document.getElementById( 'dark-mode-toggler' ).classList.add( 'hide' ); + toggler.classList.add( 'hide' ); } prevScroll = currentScroll; }; - window.addEventListener( 'scroll', checkScroll ); + + if ( toggler ) { + window.addEventListener( 'scroll', checkScroll ); + } } darkModeInitialLoad();