import Editor from './Editor'; import React, { ReactElement } from 'react'; import { OvalSelector, PointSelector, RectangleSelector } from '../selectors'; import { AnnotationProps, ContentProps, EditorMode, RenderEditorProps, RenderShapeProps, RenderOverlayProps, } from './../types/index'; import Content from './Content'; import Overlay from './Overlay'; import Oval from './Shapes/Oval'; import Point from './Shapes/Point'; import Rectangle from './Shapes/Rectangle'; const defaultProps: AnnotationProps = { src: '', annotations: [], editorMode: EditorMode.AnnotateWithText, idFunction: () => Math.random().toString(), onAnnotationsUpdate: () => {}, onAnnotationClick: () => {}, onSelectedAnnotationUpdate: () => {}, overlayOptions: { displayOverlay: true, }, renderEditor: ({ annotation, onSubmit }: RenderEditorProps) => ( ), renderShape: (props: RenderShapeProps): ReactElement | null => { const { annotation } = props; switch (annotation.geometry.type) { case RectangleSelector.TYPE: return ; case PointSelector.TYPE: return ; case OvalSelector.TYPE: return ; default: return null; } }, renderContent: ({ key, annotation }: ContentProps) => ( ), renderOverlay: ({ annotations, selectorType, overlayText, }: RenderOverlayProps): ReactElement => { if (overlayText) { return {overlayText}; } if (annotations.length === 0) { switch (selectorType) { case PointSelector.TYPE: return Click to Annotate; default: return Click and Drag to Annotate; } } else { return Select the annotation for additional options; } }, selectors: [RectangleSelector, PointSelector, OvalSelector], allowedShapes: [ RectangleSelector.TYPE, OvalSelector.TYPE, PointSelector.TYPE, ], toolBarOptions: { showDeleteOption: true, showToolBar: true, renderSelectedAnnotationIcons: () => null, renderToolbarIcons: () => null, }, }; export default defaultProps;