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;