mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 07:04:45 -04:00
Improve render performance (#511)
Massive improvement of render performance by: - replacing the codimd-line-marker with an in-memory map - an observation of the changed markdown code to identify changed lines - a unique react-key calculation
This commit is contained in:
parent
df7c4cb19e
commit
3a0e35a9f3
27 changed files with 360 additions and 161 deletions
|
@ -1,11 +1,12 @@
|
|||
import React, { ReactElement } from 'react'
|
||||
import { DomElement } from 'domhandler'
|
||||
import { ComponentReplacer, SubNodeConverter } from '../ComponentReplacer'
|
||||
import { ComponentReplacer } from '../ComponentReplacer'
|
||||
|
||||
export class TaskListReplacer implements ComponentReplacer {
|
||||
export class TaskListReplacer extends ComponentReplacer {
|
||||
onTaskCheckedChange: (lineInMarkdown: number, checked: boolean) => void
|
||||
|
||||
constructor (onTaskCheckedChange: (lineInMarkdown: number, checked: boolean) => void) {
|
||||
super()
|
||||
this.onTaskCheckedChange = onTaskCheckedChange
|
||||
}
|
||||
|
||||
|
@ -14,7 +15,7 @@ export class TaskListReplacer implements ComponentReplacer {
|
|||
this.onTaskCheckedChange(lineNum, event.currentTarget.checked)
|
||||
}
|
||||
|
||||
getReplacement (node: DomElement, index:number, subNodeConverter: SubNodeConverter): (ReactElement|undefined) {
|
||||
public getReplacement (node: DomElement, index:number): (ReactElement|undefined) {
|
||||
if (node.attribs?.class === 'task-list-item-checkbox') {
|
||||
return (
|
||||
<input
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue