Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
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 1,161 weekly downloads. As such, draft-js-simpledecorator popularity was classified as 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
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.