WordPress.org

Make WordPress Core

Ticket #48894: 48894.2.diff

File 48894.2.diff, 2.6 KB (added by afercia, 17 months ago)
  • src/js/_enqueues/lib/admin-bar.js

     
    1919                        allMenuItems,
    2020                        adminBarLogout,
    2121                        adminBarSearchForm,
     22                        adminBarMyAccount,
    2223                        shortlink,
    2324                        skipLink,
    2425                        mobileEvent,
     
    3334                allMenuItems = adminBar.querySelectorAll( '.ab-item' );
    3435                adminBarLogout = document.getElementById( 'wp-admin-bar-logout' );
    3536                adminBarSearchForm = document.getElementById( 'adminbarsearch' );
     37                adminBarMyAccount = document.getElementById( 'wp-admin-bar-my-account' );
    3638                shortlink = document.getElementById( 'wp-admin-bar-get-shortlink' );
    3739                skipLink = adminBar.querySelector( '.screen-reader-shortcut' );
    3840                mobileEvent = /Mobile\/.+Safari/.test( navigator.userAgent ) ? 'touchstart' : 'click';
     
    5658                                }
    5759
    5860                                adminBar.removeEventListener( 'touchstart', bindMobileEvents );
     61                                adminBarMyAccount.removeEventListener( 'click', toggleMyAccount );
    5962                        } );
    6063                }
    6164
     
    6366                adminBar.addEventListener( 'click', scrollToTop );
    6467
    6568                for ( i = 0; i < topMenuItems.length; i++ ) {
    66                         // Adds or removes the hover class based on the hover intent.
    67                         window.hoverintent(
    68                                 topMenuItems[i],
    69                                 addClass.bind( null, topMenuItems[i], 'hover' ),
    70                                 removeClass.bind( null, topMenuItems[i], 'hover' )
    71                         ).options( {
    72                                 timeout: 180
    73                         } );
     69                        if ( topMenuItems[i].id !== 'wp-admin-bar-my-account' ) {
     70                                // Adds or removes the hover class based on the hover intent, except for My Account menu.
     71                                window.hoverintent(
     72                                        topMenuItems[i],
     73                                        addClass.bind( null, topMenuItems[i], 'hover' ),
     74                                        removeClass.bind( null, topMenuItems[i], 'hover' )
     75                                ).options( {
     76                                        timeout: 180
     77                                } );
     78                        }
    7479
    7580                        // Toggle hover class if the enter key is pressed.
    7681                        topMenuItems[i].addEventListener( 'keydown', toggleHoverIfEnter );
    7782                }
    7883
     84                // Toggle hover class on My Account menu.
     85                adminBarMyAccount.addEventListener( 'click', toggleMyAccount );
     86
    7987                // Remove hover class if the escape key is pressed.
    8088                for ( i = 0; i < allMenuItems.length; i++ ) {
    8189                        allMenuItems[i].addEventListener( 'keydown', removeHoverIfEscape );
     
    113121                if ( adminBarLogout ) {
    114122                        adminBarLogout.addEventListener( 'click', emptySessionStorage );
    115123                }
     124
     125                /**
     126                 * Toggles the My Account menu.
     127                 *
     128                 * @since 5.5.0
     129                 *
     130                 * @param {Event} event The click event.
     131                 */
     132                function toggleMyAccount( event ) {
     133                        event.preventDefault();
     134                        adminBarMyAccount.classList.toggle( 'hover' );
     135                }
    116136        } );
    117137
    118138        /**