/** * WordPress dependencies */ import domReady from '@wordpress/dom-ready'; import { RichTextShortcut, RichTextToolbarButton } from '@wordpress/block-editor'; import { unregisterFormatType, toggleFormat } from '@wordpress/rich-text'; import { formatUnderline } from '@wordpress/icons'; import { __ } from '@wordpress/i18n'; /** * Internal dependencies */ import { registerFormatType } from './register-format-type'; import type { FormatEditProps } from './types'; const formatName = 'rtex/rtex-underline'; const title = __( 'Underline', 'richtext-extension' ); const deprecatedFormatName = 'rtex/rtex-underline-deprecated'; const deprecatedTitle = __( 'Underline (Deprecated)', 'richtext-extension' ); domReady( () => { if ( rtexConf.underlineActive ) { unregisterFormatType( 'core/underline' ); registerFormatType( deprecatedFormatName, { title: deprecatedTitle, tagName: 'u', className: null, } ); registerFormatType( formatName, { title, tagName: 'span', className: null, attributes: { style: 'style', }, edit( { isActive, value, onChange }: FormatEditProps ) { const onToggle = () => onChange( toggleFormat( value, { type: formatName, attributes: { style: 'text-decoration: underline;', }, title, } as Parameters< typeof toggleFormat >[ 1 ] ) ); return ( <> ); }, } ); } } );