import * as React from 'react' ; import { ICommand , TextState , TextAreaTextApi } from './' ; import { selectWord } from '../utils/markdownUtils' ; export const strikethrough = { name : 'strikethrough' , keyCommand : 'strikethrough' , shortcuts : 'ctrl+shift+x' , buttonProps : { 'aria-label' : 'Add strikethrough text' , title : 'Add strikethrough text' } , icon : ( < svg data - name = "strikethrough" width = "12" height = "12" role = "img" viewBox = "0 0 512 512" > < path fill = "currentColor" d = "M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z" / > < /svg>), execute : ( state , api ) => { const newSelectionRange = selectWord ( { text : state . text , selection : state . selection } ) ; const state1 = api . setSelectionRange ( newSelectionRange ) ; const state2 = api . replaceSelection ( `~~${ state1 . selectedText }~~` ) ; api . setSelectionRange ( { start : state2 . selection . end - 2 - state1 . selectedText . length , end : state2 . selection . end - 2 , } ) ; } , } ;