mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 09:46:22 +00:00
auto scroll
This commit is contained in:
@@ -48,10 +48,12 @@ class MarkdownEditor extends React.Component {
|
|||||||
handleBlur (e) {
|
handleBlur (e) {
|
||||||
let { config } = this.props
|
let { config } = this.props
|
||||||
if (config.editor.switchPreview === 'BLUR') {
|
if (config.editor.switchPreview === 'BLUR') {
|
||||||
|
let cursorPosition = this.refs.code.getCursorPosition()
|
||||||
this.setState({
|
this.setState({
|
||||||
status: 'PREVIEW'
|
status: 'PREVIEW'
|
||||||
}, () => {
|
}, () => {
|
||||||
this.refs.preview.focus()
|
this.refs.preview.focus()
|
||||||
|
this.refs.preview.scrollTo(cursorPosition.row)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -62,7 +64,7 @@ class MarkdownEditor extends React.Component {
|
|||||||
|
|
||||||
handlePreviewMouseUp (e) {
|
handlePreviewMouseUp (e) {
|
||||||
let { config } = this.props
|
let { config } = this.props
|
||||||
if (config.editor.switchPreview === 'BLUR' && new Date() - this.previewMouseDownedAt < 150) {
|
if (config.editor.switchPreview === 'BLUR' && new Date() - this.previewMouseDownedAt < 200) {
|
||||||
this.setState({
|
this.setState({
|
||||||
status: 'CODE'
|
status: 'CODE'
|
||||||
}, () => {
|
}, () => {
|
||||||
|
|||||||
@@ -120,6 +120,24 @@ export default class MarkdownPreview extends React.Component {
|
|||||||
this.refs.root.focus()
|
this.refs.root.focus()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getWindow () {
|
||||||
|
return this.refs.root.contentWindow
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollTo (targetRow) {
|
||||||
|
let lineAnchors = this.getWindow().document.querySelectorAll('a.lineAnchor')
|
||||||
|
|
||||||
|
for (let index = 0; index < lineAnchors.length; index++) {
|
||||||
|
let lineAnchor = lineAnchors[index]
|
||||||
|
let row = parseInt(lineAnchor.getAttribute('data-key'))
|
||||||
|
if (row > targetRow) {
|
||||||
|
let targetAnchor = lineAnchors[index - 1]
|
||||||
|
this.getWindow().scrollTo(0, targetAnchor.offsetTop)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
let { className, style, tabIndex } = this.props
|
let { className, style, tabIndex } = this.props
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user