From ddce30327170f4d5cc81e94f2dbbdb165d6df8df Mon Sep 17 00:00:00 2001 From: Dave Smith Date: Thu, 29 Aug 2024 17:47:16 +0100 Subject: [PATCH] Improve Social Icons setup and appending (#64877) Co-authored-by: getdave Co-authored-by: jeryj Co-authored-by: Mamaduka --- .../components/button-block-appender/index.js | 15 ++++++++-- .../block-library/src/social-links/edit.js | 21 +++++++++----- .../src/social-links/editor.scss | 29 +++++++++++++++---- 3 files changed, 50 insertions(+), 15 deletions(-) diff --git a/packages/block-editor/src/components/button-block-appender/index.js b/packages/block-editor/src/components/button-block-appender/index.js index fd349ad1daac07..9cd745ac5eb3d6 100644 --- a/packages/block-editor/src/components/button-block-appender/index.js +++ b/packages/block-editor/src/components/button-block-appender/index.js @@ -7,7 +7,7 @@ import clsx from 'clsx'; * WordPress dependencies */ import { Button, Tooltip, VisuallyHidden } from '@wordpress/components'; -import { forwardRef } from '@wordpress/element'; +import { forwardRef, useRef } from '@wordpress/element'; import { _x, sprintf } from '@wordpress/i18n'; import { Icon, plus } from '@wordpress/icons'; import deprecated from '@wordpress/deprecated'; @@ -16,17 +16,26 @@ import deprecated from '@wordpress/deprecated'; * Internal dependencies */ import Inserter from '../inserter'; +import { useMergeRefs } from '@wordpress/compose'; function ButtonBlockAppender( { rootClientId, className, onFocus, tabIndex, onSelect }, ref ) { + const inserterButtonRef = useRef(); + + const mergedInserterButtonRef = useMergeRefs( [ inserterButtonRef, ref ] ); return ( { + if ( onSelect && typeof onSelect === 'function' ) { + onSelect( ...args ); + } + inserterButtonRef.current?.focus(); + } } renderToggle={ ( { onToggle, disabled, @@ -53,7 +62,7 @@ function ButtonBlockAppender(