-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdefaultProps.js
More file actions
78 lines (75 loc) · 2.26 KB
/
defaultProps.js
File metadata and controls
78 lines (75 loc) · 2.26 KB
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
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, renderInputArea }) => (
<Editor
annotation={annotation}
onChange={onChange}
onSubmit={onSubmit}
renderInputArea={renderInputArea}
/>
),
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>
}
},
renderInputArea: props => {
return (
<textarea
placeholder="Write description"
onFocus={props.onFocus}
onBlur={props.onBlur}
onChange={props.onChange}
value={props.value}
></textarea>
)
},
}