/**
* 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;