PluginProbe
Gutenberg / trunk
Gutenberg vtrunk
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | build/scripts/block-library/navigation.php +26 -14 23.9.1 → trunk View file →
@@ -416,9 +416,9 @@
416 416 *
417 417 * @since 6.5.0
418 418 *
419 419 * @param string $overlay_template_part_id The overlay template part ID in format "theme//slug".
420 - * @param array $attributes The block attributes.
420 + * @param array $attributes The block attributes.
421 421 * @return WP_Block_List Returns the inner blocks for the overlay template part.
422 422 */
423 423 private static function get_overlay_blocks_from_template_part( $overlay_template_part_id, $attributes ) {
424 424 if ( empty( $overlay_template_part_id ) || ! is_string( $overlay_template_part_id ) ) {
@@ -517,9 +517,9 @@
517 517 *
518 518 * @since 6.5.0
519 519 *
520 520 * @param array $attributes The block attributes.
521 - * @param WP_Block $block The parsed block.
521 + * @param WP_Block $block The parsed block.
522 522 * @return WP_Block_List Returns the inner blocks for the navigation block.
523 523 */
524 524 private static function get_inner_blocks( $attributes, $block ) {
525 525 $inner_blocks = $block->inner_blocks;
@@ -739,10 +739,10 @@
739 739 * Get the responsive container markup
740 740 *
741 741 * @since 6.5.0
742 742 *
743 - * @param array $attributes The block attributes.
744 - * @param WP_Block_List $inner_blocks The list of inner blocks.
743 + * @param array $attributes The block attributes.
744 + * @param WP_Block_List $inner_blocks The list of inner blocks.
745 745 * @param string $inner_blocks_html The markup for the inner blocks.
746 746 * @return string Returns the container markup.
747 747 */
748 748 private static function get_responsive_container_markup( $attributes, $inner_blocks, $inner_blocks_html ) {
@@ -831,8 +831,16 @@
831 831 ';
832 832 $responsive_container_content_directives = '
833 833 data-wp-watch="callbacks.focusFirstElement"
834 834 ';
835 +
836 + // The default overlay displays every submenu it contains; a custom overlay
837 + // opts out through the `disable-default-overlay` class on this container.
838 + // Submenus inherit this flag to tell the two apart, derived from the same
839 + // value as that class so the markup and the styles cannot disagree.
840 + if ( $has_custom_overlay ) {
841 + $responsive_container_directives .= ' ' . wp_interactivity_data_wp_context( array( 'hasCustomOverlay' => true ) );
842 + }
835 843 }
836 844
837 845 // Don't apply overlay inline styles if using a custom overlay template part.
838 846 // The custom overlay is responsible for its own styling.
@@ -891,10 +899,10 @@
891 899 * Get the wrapper attributes
892 900 *
893 901 * @since 6.5.0
894 902 *
895 - * @param array $attributes The block attributes.
896 - * @param WP_Block_List $inner_blocks A list of inner blocks.
903 + * @param array $attributes The block attributes.
904 + * @param WP_Block_List $inner_blocks A list of inner blocks.
897 905 * @return string Returns the navigation block markup.
898 906 */
899 907 private static function get_nav_attributes( $attributes, $inner_blocks ) {
900 908 $is_interactive = static::is_interactive( $attributes, $inner_blocks );
@@ -978,9 +986,9 @@
978 986 * Returns the markup for the navigation block.
979 987 *
980 988 * @since 6.5.0
981 989 *
982 - * @param array $attributes The block attributes.
990 + * @param array $attributes The block attributes.
983 991 * @param WP_Block_List $inner_blocks The list of inner blocks.
984 992 * @return string Returns the navigation wrapper markup.
985 993 */
986 994 private static function get_inner_block_markup( $attributes, $inner_blocks ) {
@@ -1047,8 +1055,12 @@
1047 1055 }
1048 1056
1049 1057 unset( $attributes['rgbTextColor'], $attributes['rgbBackgroundColor'] );
1050 1058
1059 + // Submenu detection is memoized while a navigation block renders. Reset it so
1060 + // the result of a previously rendered navigation block is not reused for this one.
1061 + static::$has_submenus = false;
1062 +
1051 1063 $inner_blocks = static::get_inner_blocks( $attributes, $block );
1052 1064 // Prevent navigation blocks referencing themselves from rendering.
1053 1065 if ( gutenberg_block_core_navigation_block_tree_has_block_type(
1054 1066 $inner_blocks,
@@ -1785,14 +1797,14 @@
1785 1797 * @since 5.9.0
1786 1798 *
1787 1799 * @deprecated 6.3.0 Use WP_Navigation_Fallback::parse_blocks_from_menu_items() instead.
1788 1800 *
1789 - * @param array $menu_items An array of menu items that represent
1790 - * an individual level of a menu.
1791 - * @param array $menu_items_by_parent_id An array keyed by the id of the
1792 - * parent menu where each element is an
1793 - * array of menu items that belong to
1794 - * that parent.
1801 + * @param array $menu_items An array of menu items that represent
1802 + * an individual level of a menu.
1803 + * @param array $menu_items_by_parent_id An array keyed by the id of the
1804 + * parent menu where each element is an
1805 + * array of menu items that belong to
1806 + * that parent.
1795 1807 * @return array An array of parsed block data.
1796 1808 */
1797 1809 function gutenberg_block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) {
1798 1810
@@ -1890,9 +1902,9 @@
1890 1902 * @since 6.2.0
1891 1903 *
1892 1904 * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback_blocks() instead.
1893 1905 *
1894 - * @param object $classic_nav_menu WP_Term The classic navigation object to convert.
1906 + * @param object $classic_nav_menu WP_Term The classic navigation object to convert.
1895 1907 * @return array the normalized parsed blocks.
1896 1908 */
1897 1909 function gutenberg_block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) {
1898 1910