diff --git a/packages/block-library/src/button/edit.js b/packages/block-library/src/button/edit.js index e890ee67d7a2a..4684c05a37f7d 100644 --- a/packages/block-library/src/button/edit.js +++ b/packages/block-library/src/button/edit.js @@ -7,7 +7,7 @@ import classnames from 'classnames'; * WordPress dependencies */ import { __ } from '@wordpress/i18n'; -import { useEffect, useState, useRef } from '@wordpress/element'; +import { useEffect, useState, useRef, useMemo } from '@wordpress/element'; import { Button, ButtonGroup, @@ -149,6 +149,13 @@ function ButtonEdit( props ) { } }, [ isSelected ] ); + // Memoize link value to avoid overriding the LinkControl's internal state. + // This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256. + const linkValue = useMemo( + () => ( { url, opensInNewTab } ), + [ url, opensInNewTab ] + ); + return ( <>