Releases: ianstormtaylor/slate
[email protected]
Minor Changes
-
#4299
2c17e2b7
Thanks @georgberecz! - Allow custom event handlers on Editable component to return boolean flag to specify whether the event can be treated as being handled.By default, the
Editable
component comes with a set of event handlers that handle typical rich-text editing behaviors (for example, it implements its ownonCopy
,onPaste
,onDrop
, andonKeyDown
handlers).In some cases you may want to extend or override Slate's default behavior, which can be done by passing your own event handler(s) to the
Editable
component.Your custom event handler can control whether or not Slate should execute its own event handling for a given event after your handler runs depending on the return value of your event handler as described below.
import {Editable} from 'slate-react'; function MyEditor() { const onClick = event => { // Implement custom event logic... // When no value is returned, Slate will execute its own event handler when // neither isDefaultPrevented nor isPropagationStopped was set on the event }; const onDrop = event => { // Implement custom event logic... // No matter the state of the event, treat it as being handled by returning // true here, Slate will skip its own event handler return true; }; const onDragStart = event => { // Implement custom event logic... // No matter the status of the event, treat event as *not* being handled by // returning false, Slate will exectue its own event handler afterward return false; }; return ( <Editable onClick={onClick} onDrop={onDrop} onDragStart={onDragStart} {/*...*/} /> ) }
Patch Changes
-
#4266
411e5a19
Thanks @TheSpyder! - Removed accidental bundling ofslate-history
insideslate-react
-
#4307
a7e3a181
Thanks @clauderic! - Fix deletion of selected inline void nodes in Chrome. Chrome does not fire abeforeinput
event when deleting backwards within an inline void node, so we need to add special logic to handle this edge-case for Chrome only. -
#4272
294d5120
Thanks @clauderic! - Fix errors accessingglobalThis
in browsers that do not implement it -
#4295
dfc03960
Thanks @dubzzz! - Fix React warnings related toautoCorrect
andautoCapitalize
attributes being passed as a boolean instead of a string. -
#4271
ff267767
Thanks @omerg! - Fixed typo: RenamedtoSlatePoint
argumentextractMatch
toexactMatch
[email protected]
Minor Changes
- #4230
796389c7
Thanks @TheSpyder! - Applying invalidinsert_node
operations will now throw an exception for all invalid paths, not just invalid parent paths.
Patch Changes
-
#4245
b33a531b
Thanks @JonasKruckenberg! - Removed lodash dependecy to reduce bundled footprint -
#4208
feb293aa
Thanks @TheSpyder! - FixError: Cannot get the start point in the node at path [...] because it has no start text node
caused by normalizing a document where some elements have no children -
#4230
796389c7
Thanks @TheSpyder! - Exceptions ineditor.apply()
andEditor.withoutNormalizing()
will no longer leave the editor in an invalid state -
#4227
e6413d46
Thanks @ulion! - Fixed a bug that would allow multiple changes to be scheduled at the same time.
[email protected]
[email protected]
Patch Changes
-
#4193
fd70dc0b
Thanks @beorn! - Fixed insert and remove text operations to no-op without any text. -
#4078
2dad21d1
Thanks @TheSpyder! - Fixed inversion ofset_node
operations that delete properties on nodes. -
#4168
95f402c5
Thanks @ridhambhat! - Fixed a bug in splitting and applying overlapping marks to text nodes.
[email protected]
Patch Changes
-
#4118
6a137633
Thanks @kamilkazmierczak! - Improved detection of legacy browsers that don't have properbeforeinput
support. -
#4190
ea2eefef
Thanks @juliankrispel! - Added arenderPlaceholder
prop to the<Editable>
component for customizing how placeholders are rendered. -
#4157
de5cc7e5
Thanks @githoniel! - Fixed a bug when syncing the selection for IME-based editing. -
#4158
ea6dc089
Thanks @githoniel! - Fixed a bug that resulted in doubly-input characters when using an IME. -
#4211
1c32b97d
Thanks @clauderic! - Collapse expanded selection before handlingmoveWordBackward
(alt + left
) andmoveWordForward
(alt + right
) hotkeys. -
#4219
737aaa9c
Thanks @juliankrispel! - Fixes error that occurs when Editor is rendered inside iframe
v0.61.3
v0.61.3
0.19.0
BREAKING CHANGES
- The
filterDescendants
andfindDescendants
methods are now depth-first. This shouldn't affect almost anyone, since they are usually not the best things to be using for performance reasons. If you happen to have a very specific use case that needs breadth-first, (or even likely something better), you'll need to implement it yourself.
DEPRECATION CHANGES
- Some
Node
methods have been deprecated! There were a few methods that had been added over time that were either poorly named that have been deprecated and renamed, and a handful of methods that are no longer useful for the core library that have been deprecated. Here's a full list:areDescendantSorted
->areDescendantsSorted
getHighestChild
->getFurthestAncestor
getHighestOnlyChildParent
->getFurthestOnlyChildAncestor
concatChildren
decorateTexts
filterDescendantsDeep
findDescendantDeep
getChildrenBetween
getChildrenBetweenIncluding
isInlineSplitAtRange
0.18.0
BREAKING CHANGES
- The
plugin.render
property is now calledplugin.renderPortal
. This is to make way for the newplugin.render
property that offers HOC-like behavior, so that plugins can augment the editor however they choose.
0.17.0
DEPRECATION CHANGES
-
Some
Selection
methods have been deprecated! Previously there were many inconsistencies in the naming and handling of selection changes. This has all been cleaned up, but in the process some methods have been deprecated. Here is a full list of the deprecated methods and their new alternatives:moveToOffsets
->moveOffsetsTo
moveForward
->move
moveBackward
->move
moveAnchorOffset
->moveAnchor
moveFocusOffset
->moveFocus
moveStartOffset
->moveStart
moveEndOffset
->moveEnd
extendForward
->extend
extendBackward
->extend
unset
->deselect
-
Some selection transforms have been deprecated! Along with the methods, the selection-based transforms have also been refactored, resulting in deprecations. Here is a full list of the deprecated transforms and their new alternatives:
moveTo
->select
moveToOffsets
->moveOffsetsTo
moveForward
->move
moveBackward
->move
moveStartOffset
->moveStart
moveEndOffset
->moveEnd
extendForward
->extend
extendBackward
->extend
flipSelection
->flip
unsetSelection
->deselect
unsetMarks
0.16.0
BREAKING CHANGES
- Inline nodes are now always surrounded by text nodes. Previously this behavior only occured for inline nodes with
isVoid: true
. Now, all inline nodes will always be surrounded by text nodes. If text nodes don't exist, empty ones will be created. This allows for more consistent behavior across Slate, and parity with other editing experiences.