import { DomElement } from 'domhandler' import React, { ReactElement } from 'react' import { ComponentReplacer } from '../ComponentReplacer' export class TaskListReplacer extends ComponentReplacer { onTaskCheckedChange?: (lineInMarkdown: number, checked: boolean) => void constructor (onTaskCheckedChange?: (lineInMarkdown: number, checked: boolean) => void) { super() this.onTaskCheckedChange = onTaskCheckedChange } handleCheckboxChange = (event: React.ChangeEvent): void => { const lineNum = Number(event.currentTarget.dataset.line) if (this.onTaskCheckedChange) { this.onTaskCheckedChange(lineNum, event.currentTarget.checked) } } public getReplacement (node: DomElement): (ReactElement | undefined) { if (node.attribs?.class !== 'task-list-item-checkbox') { return } return ( ) } }