WordPress/wp-content/themes/twentytwentyone/assets/js/customize.js
desrosj e0669ddaae Bundled Themes: Sync Twenty Twenty-One with the latest changes from GitHub.
For a full list of changes since [49330], see 5759e96...e7d5991.

Props poena, luminuu, ryelle, kjellr, aristath, justinahinon, felipeelia, joostdevalk.
See #51526.
Built from https://develop.svn.wordpress.org/trunk@49478


git-svn-id: http://core.svn.wordpress.org/trunk@49237 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-11-02 19:45:07 +00:00

62 lines
2.2 KiB
JavaScript

/* global twentytwentyoneGetHexLum, backgroundColorNotice */
( function() {
/**
* Add/remove the notice.
*
* @param {boolean} enable - Whether we want to enable or disable the notice.
*
* @return {void}
*/
function twentytwentyoneBackgroundColorNotice( enable ) {
if ( enable ) {
wp.customize( 'background_color' ).notifications.add( 'backgroundColorNotice', new wp.customize.Notification( 'backgroundColorNotice', {
type: 'info',
message: backgroundColorNotice.message
} ) );
} else {
wp.customize( 'background_color' ).notifications.remove( 'backgroundColorNotice' );
}
}
// Wait until the customizer has finished loading.
wp.customize.bind( 'ready', function() {
var supportsDarkMode = ( 127 <= twentytwentyoneGetHexLum( wp.customize( 'background_color' ).get() ) && wp.customize( 'respect_user_color_preference' ).get() );
// Hide the "respect_user_color_preference" setting if the background-color is dark.
if ( 127 > twentytwentyoneGetHexLum( wp.customize( 'background_color' ).get() ) ) {
wp.customize.control( 'respect_user_color_preference' ).deactivate();
}
// Add notice on init if needed.
if ( wp.customize( 'respect_user_color_preference' ) ) {
twentytwentyoneBackgroundColorNotice( true );
}
// Handle changes to the background-color.
wp.customize( 'background_color', function( setting ) {
setting.bind( function( value ) {
if ( 127 > twentytwentyoneGetHexLum( value ) ) {
wp.customize.control( 'respect_user_color_preference' ).deactivate();
supportsDarkMode = false;
} else {
wp.customize.control( 'respect_user_color_preference' ).activate();
supportsDarkMode = wp.customize( 'respect_user_color_preference' ).get();
}
} );
} );
// Handle changes to the "respect_user_color_preference" setting.
wp.customize( 'respect_user_color_preference', function( setting ) {
setting.bind( function( value ) {
supportsDarkMode = value && 127 < twentytwentyoneGetHexLum( wp.customize( 'background_color' ).get() );
if ( ! supportsDarkMode ) {
twentytwentyoneBackgroundColorNotice( false );
} else {
twentytwentyoneBackgroundColorNotice( true );
}
} );
} );
} );
}() );