Modifier
The Modifier
module is a static set of utility functions that encapsulate common
edit operations on ContentState
objects. It is highly recommended that you use
these methods for edit operations.
These methods also take care of removing or modifying entity ranges appropriately, given the mutability types of any affected entities.
In each case, these methods accept ContentState
objects with relevant
parameters and return ContentState
objects. The returned ContentState
will be the same as the input object if no edit was actually performed.
Overview
Methods
-
replaceText(...): ContentState
-
insertText(...): ContentState
-
moveText(...): ContentState
-
replaceWithFragment(...): ContentState
-
removeRange(...): ContentState
-
splitBlock(...): ContentState
-
applyInlineStyle(...): ContentState
-
removeInlineStyle(...): ContentState
-
setBlockType(...): ContentState
-
setBlockData(...): ContentState
-
mergeBlockData(...): ContentState
-
applyEntity(...): ContentState
Static Methods
replaceText
replaceText(
contentState: ContentState,
rangeToReplace: SelectionState,
text: string,
inlineStyle?: DraftInlineStyle,
entityKey?: ?string
): ContentState
Replaces the specified range of this ContentState
with the supplied string,
with the inline style and entity key applied to the entire inserted string.
Example: On Facebook, when replacing @abraham lincoln
with a mention of
Abraham Lincoln, the entire old range is the target to replace and the mention
entity should be applied to the inserted string.
insertText
insertText(
contentState: ContentState,
targetRange: SelectionState,
text: string,
inlineStyle?: DraftInlineStyle,
entityKey?: ?string
): ContentState
Identical to replaceText
, but enforces that the target range is collapsed
so that no characters are replaced. This is just for convenience, since text
edits are so often insertions rather than replacements.
moveText
moveText(
contentState: ContentState,
removalRange: SelectionState,
targetRange: SelectionState
): ContentState
Moves the "removal" range to the "target" range, replacing the target text.
replaceWithFragment
replaceWithFragment(
contentState: ContentState,
targetRange: SelectionState,
fragment: BlockMap
): ContentState
A "fragment" is a section of a block map, effectively just an
OrderedMap<string, ContentBlock>
much the same as the full block map of a
ContentState
object.
This method will replace the "target" range with the fragment.
Example: When pasting content, we convert the paste into a fragment to be inserted into the editor, then use this method to add it.
removeRange
removeRange(
contentState: ContentState,
rangeToRemove: SelectionState,
removalDirection: DraftRemovalDirection
): ContentState
Remove an entire range of text from the editor. The removal direction is important for proper entity deletion behavior.
splitBlock
splitBlock(
contentState: ContentState,
selectionState: SelectionState
): ContentState
Split the selected block into two blocks. This should only be used if the selection is collapsed.
applyInlineStyle
applyInlineStyle(
contentState: ContentState,
selectionState: SelectionState,
inlineStyle: string
): ContentState
Apply the specified inline style to the entire selected range.
removeInlineStyle
removeInlineStyle(
contentState: ContentState,
selectionState: SelectionState,
inlineStyle: string
): ContentState
Remove the specified inline style from the entire selected range.
setBlockType
setBlockType(
contentState: ContentState,
selectionState: SelectionState,
blockType: DraftBlockType
): ContentState
Set the block type for all selected blocks.
setBlockData
setBlockData(
contentState: ContentState,
selectionState: SelectionState,
blockData: Map<any, any>
): ContentState
Set the block data for all selected blocks.
mergeBlockData
mergeBlockData(
contentState: ContentState,
selectionState: SelectionState,
blockData: Map<any, any>
): ContentState
Update block data for all selected blocks.
applyEntity
applyEntity(
contentState: ContentState,
selectionState: SelectionState,
entityKey: ?string
): ContentState
Apply an entity to the entire selected range, or remove all entities from the
range if entityKey
is null
.