forked from Secretmapper/react-image-annotation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
defaultProps.js
115 lines (112 loc) · 2.42 KB
/
defaultProps.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import React from 'react'
import Point from './Point'
import Editor from './Editor'
import FancyRectangle from './FancyRectangle'
import Rectangle from './Rectangle'
import Oval from './Oval'
import Content from './Content'
import Overlay from './Overlay'
import {
RectangleSelector,
PointSelector,
OvalSelector
} from '../selectors'
export default {
innerRef: () => {},
onChange: () => {},
onSubmit: () => {},
type: RectangleSelector.TYPE,
selectors: [
RectangleSelector,
PointSelector,
OvalSelector
],
disableAnnotation: false,
disableSelector: false,
disableEditor: false,
disableOverlay: false,
activeAnnotationComparator: (a, b) => a === b,
renderSelector: ({ annotation }) => {
switch (annotation.geometry.type) {
case RectangleSelector.TYPE:
return (
<FancyRectangle
annotation={annotation}
/>
)
case PointSelector.TYPE:
return (
<Point
annotation={annotation}
/>
)
case OvalSelector.TYPE:
return (
<Oval
annotation={annotation}
/>
)
default:
return null
}
},
renderEditor: ({ annotation, onChange, onSubmit }) => (
<Editor
annotation={annotation}
onChange={onChange}
onSubmit={onSubmit}
/>
),
renderHighlight: ({ key, annotation, active }) => {
switch (annotation.geometry.type) {
case RectangleSelector.TYPE:
return (
<Rectangle
key={key}
annotation={annotation}
active={active}
/>
)
case PointSelector.TYPE:
return (
<Point
key={key}
annotation={annotation}
active={active}
/>
)
case OvalSelector.TYPE:
return (
<Oval
key={key}
annotation={annotation}
active={active}
/>
)
default:
return null
}
},
renderContent: ({ key, annotation }) => (
<Content
key={key}
annotation={annotation}
/>
),
renderOverlay: ({ type, annotation }) => {
switch (type) {
case PointSelector.TYPE:
return (
<Overlay>
Click to Annotate
</Overlay>
)
default:
return (
<Overlay>
Click and Drag to Annotate
</Overlay>
)
}
}
}