
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
draft-js-simpledecorator
Advanced tools
Create a Draft.Decorator as simply as with Draft.CompositeDecorator, with the flexibility of passing custom props.
Create some Draft.Decorators
as simply as with Draft.CompositeDecorator
, but with the possibility to pass custom props
to your decorating component.
When making Decorators
, you normally either implement the DecoratorType
interface yourself (tedious), or use the convenient Draft.CompositeDecorator
. Draft.CompositeDecorator
asks to define a strategy
and to provide a rendering component
. The strategy
function simply tells what part of the document should be decorated by the component
. But you have no way to pass custom props
to the component
.
SimpleDecorator
implements the DecoratorType
interface for you, and still offers the flexibility of passing custom props
in your strategy
.
$ npm install draft-js-simpledecorator
This module uses the same convention than Draft.CompositeDecorator
, and ask to provide a strategy
and a component
.
var Draft = require('draft-js');
var SimpleDecorator = require('draft-js-simpledecorator');
var decorator = new SimpleDecorator(
function strategy(contentBlock, callback, contentState) {
// Decorate any span of text in the content block,
// providing custom props!
var customProps = {};
callback(start, end, customProps);
},
function component(props) {
// return some React.Component
}
);
var editorState = Draft.EditorState.createEmpty(decorator)
Below is an example decorator that finds any hexadecimal color code (ex: #ffca40
), and color them accordingly:
const hexColorDecorator = new SimpleDecorator(
function strategy(contentBlock, callback, contentState) {
const text = contentBlock.getText()
// Match text like #ac00ff and #EEE
let HEX_COLOR = /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/g
// For all Hex color matches
let match
while ((match = HEX_COLOR.exec(text)) !== null) {
// Decorate the color code
let colorText = match[0]
let start = match.index
let end = start + colorText.length
let props = {
color: colorText
}
callback(start, end, props)
}
},
/**
* @prop {String} color
*/
function component(props) {
// Colorize the text with the given color
return <span style={{ color: props.color }}>{ props.children }</span>
}
)
To do that in Draft, you would not be able to use Draft.CompositeDecorator
. Instead, you would have to re-implement the DecoratorType
interface yourself.
Draft.CompositeDecorator
permits to define multiple decorators. To do so with SimpleDecorator
, you can use MultiDecorators, which allows to easily compose any decorator.
FAQs
Create a Draft.Decorator as simply as with Draft.CompositeDecorator, with the flexibility of passing custom props.
The npm package draft-js-simpledecorator receives a total of 489 weekly downloads. As such, draft-js-simpledecorator popularity was classified as not popular.
We found that draft-js-simpledecorator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.