AdvancedCustomFields / acf

Advanced Custom Fields
http://advancedcustomfields.com/
823 stars 168 forks source link

WYSIWYG 'visual' tab in sidebar breaks when switching sidebar tabs #904

Open Zealth57 opened 2 months ago

Zealth57 commented 2 months ago

Describe the bug When using an ACF WYSIWYG field in a sidebar metabox, the WYSIWYG editor breaks when you switch from the 'Page' tab to the 'Block' tab and back again.

To Reproduce Steps to reproduce the behavior:

  1. Create an ACF WYSIWYG field and set it to show up in the sidebar. Code example is below to generate a basic WYSIWYG field.
  2. Create a new page in the Gutenberg editor
  3. Note you can interact with your WYSIWYG field, enter content, etc.
  4. Switch your tab in the top right from 'Page' to 'Block' then switch it back to 'Page'
  5. The WYSIWYG is no longer usable in the 'visual' view. You can switch to 'text' and change stuff, but the 'visual' is white with no text visible and not usable.

Expected behavior The WYSIWYG should be usable no matter what tabs you switch to. It's not just when I manually switch from 'Page' to 'Block' and then back to 'Page'. When you add a block to a page, the editor will automatically switch the tab for you to 'Block'. Sometimes I'll be messing around with blocks then decide I need to go back to the 'Page' tab and edit my wysiwyg and it's broken.

Code

add_action( 'acf/include_fields', function() {
    if ( ! function_exists( 'acf_add_local_field_group' ) ) {
        return;
    }

    acf_add_local_field_group( array(
    'key' => 'group_6622e9af5e220',
    'title' => 'Test Sidebar WYSIWYG',
    'fields' => array(
        array(
            'key' => 'field_6622e9afb3cec',
            'label' => 'Test Sidebar WYSIWYG',
            'name' => 'test_sidebar_wysiwyg',
            'aria-label' => '',
            'type' => 'wysiwyg',
            'instructions' => '',
            'required' => 0,
            'conditional_logic' => 0,
            'wrapper' => array(
                'width' => '',
                'class' => '',
                'id' => '',
            ),
            'default_value' => '',
            'tabs' => 'all',
            'toolbar' => 'full',
            'media_upload' => 1,
            'delay' => 0,
        ),
    ),
    'location' => array(
        array(
            array(
                'param' => 'post_type',
                'operator' => '==',
                'value' => 'page',
            ),
        ),
    ),
    'menu_order' => 0,
    'position' => 'side',
    'style' => 'default',
    'label_placement' => 'top',
    'instruction_placement' => 'label',
    'hide_on_screen' => '',
    'active' => true,
    'description' => '',
    'show_in_rest' => 1,
) );
} );

Version Information:

Additional context I'm unsure when this broken (update to ACF or WP core) but was definitely recently working, as of at least last major WP version and a few updates of ACF back. This is producible using the WP 2024 theme with no plugins except ACF installed.

rsk-jbrown commented 1 month ago

Moving your mouse quickly between items in the block inserter can also cause this issue - I'm struggling to see the exact cause, but seems to be happening when a request for a preview_image is cancelled before completion