1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-02-13 11:44:55 +01:00
AlbertHilb 64eb1169af Render text inside void nodes with a zero-width space. (#1388)
So the node can contain selection but the text is not
visible.
2017-11-11 15:35:30 -08:00

46 lines
973 B
JavaScript

/** @jsx h */
import React from 'react'
import h from '../../helpers/h'
function Image(props) {
return (
React.createElement('img', { src: props.node.data.get('src'), ...props.attributes })
)
}
function renderNode(props) {
switch (props.node.type) {
case 'image': return Image(props)
}
}
export const props = {
renderNode,
}
export const value = (
<value>
<document>
<image src="https://example.com/image.png" />
</document>
</value>
)
export const output = `
<div data-slate-editor="true" contenteditable="true" role="textbox">
<div data-slate-void="true" contenteditable="false">
<div contenteditable="true" data-slate-spacer="true" style="height:0;color:transparent;outline:none">
<span>
<span>
<span data-slate-zero-width="true">&#x200B;</span>
</span>
</span>
</div>
<div draggable="true">
<img src="https://example.com/image.png">
</div>
</div>
</div>
`.trim()