Skip to content

Commit 85029df

Browse files
committed
Attach mouseUp event handler properly
1 parent f5efbac commit 85029df

File tree

2 files changed

+18
-21
lines changed

2 files changed

+18
-21
lines changed

src/components/pdf-highlighter/PDFHighlighter.jsx

+7-14
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,14 @@ class PDFHighlighter extends React.Component {
2222
selectedText: '',
2323
}
2424

25-
componentDidMount() {
26-
window.addEventListener('mouseup', this.onAfterSelection.bind(this))
27-
}
28-
29-
componentWillUnmount() {
30-
window.removeEventListener('mouseup', this.onAfterSelection)
25+
onUpdateContextMenu = partialUpdate => {
26+
this.setState(state => ({
27+
...state,
28+
...partialUpdate,
29+
}))
3130
}
3231

33-
onAfterSelection() {
32+
handleOnMouseUp() {
3433
const {
3534
state: {
3635
pdfDocument: { pdfViewer },
@@ -83,13 +82,6 @@ class PDFHighlighter extends React.Component {
8382
})
8483
}
8584

86-
onUpdateContextMenu = partialUpdate => {
87-
this.setState(state => ({
88-
...state,
89-
...partialUpdate,
90-
}))
91-
}
92-
9385
render() {
9486
const {
9587
contextRoot,
@@ -102,6 +94,7 @@ class PDFHighlighter extends React.Component {
10294

10395
const children = cloneElement(this.props.children, {
10496
...this.props,
97+
handleOnMouseUp: this.handleOnMouseUp.bind(this),
10598
})
10699

107100
const contextMenu =

src/components/pdf-viewer/PDFViewer.jsx

+11-7
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class PDFViewer extends React.PureComponent {
100100
// when particular PDF page is not rendered
101101
render() {
102102
const { toolbarEnabled, metadataContainerWidth } = this.state
103-
const { pdfMetadata, pdfEventBus } = this.props
103+
const { pdfMetadata, pdfEventBus, handleOnMouseUp } = this.props
104104
const { Metadata, pdfViewer } = this
105105

106106
return (
@@ -111,12 +111,16 @@ class PDFViewer extends React.PureComponent {
111111
}}
112112
>
113113
{metadataContainerWidth && <Metadata pdfMetadata={pdfMetadata} />}
114-
<div
115-
ref={node => {
116-
this.viewerNode = node
117-
}}
118-
className="pdfViewer"
119-
/>
114+
<div role="dialog">
115+
<div
116+
role="presentation"
117+
ref={node => {
118+
this.viewerNode = node
119+
}}
120+
className="pdfViewer"
121+
onMouseUp={handleOnMouseUp}
122+
/>
123+
</div>
120124
<PDFRecommender containerWidth={metadataContainerWidth} />
121125
{toolbarEnabled && (
122126
<PDFToolbar pdfViewer={pdfViewer} pdfEventBus={pdfEventBus} />

0 commit comments

Comments
 (0)