/** * External dependencies */ import Button, { ButtonProps } from '@woocommerce/base-components/button'; import { RichText } from '@wordpress/block-editor'; export interface EditableButtonProps extends Omit< ButtonProps, 'onChange' | 'placeholder' | 'value' > { /** * On change callback. */ onChange: ( value: string ) => void; /** * The placeholder of the editable button. */ placeholder?: string; /** * The current value of the editable button. */ value: string; } const EditableButton = ( { onChange, placeholder, value, ...props }: EditableButtonProps ) => { /** * If the value contains a placeholder, e.g. "Place Order · ", we need to change it, * e.g. to "Place Order · <price/>", to ensure it is displayed correctly. This reflects the * default behaviour of the `RichText` component if we would type "" directly into it. */ value = value.replace( / ); }; export default EditableButton;