import React, { ImgHTMLAttributes, ReactElement } from 'react'; import { ContentBlock, ContentState } from 'draft-js'; import clsx from 'clsx'; import { ImagePluginTheme } from '.'; export interface ImageProps extends ImgHTMLAttributes { block: ContentBlock; className?: string; theme?: ImagePluginTheme; contentState: ContentState; //removed props blockStyleFn: unknown; blockProps: unknown; customStyleMap: unknown; customStyleFn: unknown; decorator: unknown; forceSelection: unknown; offsetKey: unknown; selection: unknown; tree: unknown; preventScroll: unknown; } export default React.forwardRef( // eslint-disable-next-line prefer-arrow-callback function Image(props, ref): ReactElement { const { block, className, theme = {}, ...otherProps } = props; // leveraging destructuring to omit certain properties from props const { blockProps, // eslint-disable-line @typescript-eslint/no-unused-vars customStyleMap, // eslint-disable-line @typescript-eslint/no-unused-vars customStyleFn, // eslint-disable-line @typescript-eslint/no-unused-vars decorator, // eslint-disable-line @typescript-eslint/no-unused-vars forceSelection, // eslint-disable-line @typescript-eslint/no-unused-vars offsetKey, // eslint-disable-line @typescript-eslint/no-unused-vars selection, // eslint-disable-line @typescript-eslint/no-unused-vars tree, // eslint-disable-line @typescript-eslint/no-unused-vars blockStyleFn, // eslint-disable-line @typescript-eslint/no-unused-vars preventScroll, // eslint-disable-line @typescript-eslint/no-unused-vars contentState, ...elementProps } = otherProps; const combinedClassName = clsx(theme.image, className); const { src } = contentState.getEntity(block.getEntityAt(0)).getData(); return ( ); } );