You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
713 B
32 lines
713 B
import React from 'react'
|
|
|
|
const renderAnnotation = ({ cursorAnnotationType, renderCursor }) => (
|
|
props,
|
|
editor,
|
|
next
|
|
) => {
|
|
const { children, annotation, attributes, node } = props
|
|
|
|
if (annotation.type !== cursorAnnotationType) return next()
|
|
|
|
const data = annotation.data.toJS()
|
|
|
|
const { targetPath, alphaColor } = data
|
|
const { document } = editor.value
|
|
|
|
const targetNode = document.getNode(targetPath)
|
|
const showCursor = targetNode && targetNode.key === node.key
|
|
|
|
return (
|
|
<span
|
|
{...attributes}
|
|
style={{ position: 'relative', background: alphaColor }}
|
|
>
|
|
{showCursor ? renderCursor(data) : null}
|
|
{children}
|
|
</span>
|
|
)
|
|
}
|
|
|
|
export default renderAnnotation
|