import { ContentBlock, ContentState } from 'draft-js'; import React, { Component, MouseEvent, ReactElement } from 'react'; import { ImmutableDataStickerPluginItem } from '..'; import { StickerPluginTheme } from '../theme'; export interface StickerPubProps { block: ContentBlock; contentState: ContentState; blockProps: { onRemove(blockKey: string): void }; } interface StickerProps extends StickerPubProps { stickers: ImmutableDataStickerPluginItem; attachRemoveButton?: boolean; theme?: StickerPluginTheme; } export default class Sticker extends Component { remove = (event: MouseEvent): void => { // Note: important to avoid a content edit change event.preventDefault(); event.stopPropagation(); this.props.blockProps.onRemove(this.props.block.getKey()); }; render(): ReactElement { const { block, stickers, theme = {}, contentState } = this.props; const removeButton = ( // eslint-disable-next-line jsx-a11y/no-static-element-interactions ); const data = contentState.getEntity(block.getEntityAt(0)).getData(); return (
{this.props.attachRemoveButton ? removeButton : null}
); } }