slate-react 0.117.1 → 0.117.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -490,34 +490,44 @@ function createAndroidInputManager(_ref) {
490
490
  // schedule an action to let Slate normalize the editor state.
491
491
  var canStoreDiff = true;
492
492
  if (type.startsWith('delete')) {
493
+ var direction = type.endsWith('Backward') ? 'backward' : 'forward';
494
+ var _Range$edges = slate.Range.edges(targetRange),
495
+ _Range$edges2 = _slicedToArray(_Range$edges, 2),
496
+ start = _Range$edges2[0],
497
+ end = _Range$edges2[1];
498
+ var _Editor$leaf = slate.Editor.leaf(editor, start.path),
499
+ _Editor$leaf2 = _slicedToArray(_Editor$leaf, 2),
500
+ leaf = _Editor$leaf2[0],
501
+ path = _Editor$leaf2[1];
493
502
  if (slate.Range.isExpanded(targetRange)) {
494
- var _Range$edges = slate.Range.edges(targetRange),
495
- _Range$edges2 = _slicedToArray(_Range$edges, 2),
496
- _start = _Range$edges2[0],
497
- _end = _Range$edges2[1];
498
- var _leaf = slate.Node.leaf(editor, _start.path);
499
- if (_leaf.text.length === _start.offset && _end.offset === 0) {
503
+ if (leaf.text.length === start.offset && end.offset === 0) {
500
504
  var next = slate.Editor.next(editor, {
501
- at: _start.path,
505
+ at: start.path,
502
506
  match: slate.Text.isText
503
507
  });
504
- if (next && slate.Path.equals(next[1], _end.path)) {
505
- targetRange = {
506
- anchor: _end,
507
- focus: _end
508
- };
508
+ if (next && slate.Path.equals(next[1], end.path)) {
509
+ // when deleting a linebreak, targetRange will span across the break (ie start in the node before and end in the node after)
510
+ // if the node before is empty, this will look like a hanging range and get unhung later--which will take the break we want to remove out of the range
511
+ // so to avoid this we collapse the target range to default to single character deletion
512
+ if (direction === 'backward') {
513
+ targetRange = {
514
+ anchor: end,
515
+ focus: end
516
+ };
517
+ start = end;
518
+ var _next = _slicedToArray(next, 2);
519
+ leaf = _next[0];
520
+ path = _next[1];
521
+ } else {
522
+ targetRange = {
523
+ anchor: start,
524
+ focus: start
525
+ };
526
+ end = start;
527
+ }
509
528
  }
510
529
  }
511
530
  }
512
- var direction = type.endsWith('Backward') ? 'backward' : 'forward';
513
- var _Range$edges3 = slate.Range.edges(targetRange),
514
- _Range$edges4 = _slicedToArray(_Range$edges3, 2),
515
- start = _Range$edges4[0],
516
- end = _Range$edges4[1];
517
- var _Editor$leaf = slate.Editor.leaf(editor, start.path),
518
- _Editor$leaf2 = _slicedToArray(_Editor$leaf, 2),
519
- leaf = _Editor$leaf2[0],
520
- path = _Editor$leaf2[1];
521
531
  var diff = {
522
532
  text: '',
523
533
  start: start.offset,
@@ -747,13 +757,13 @@ function createAndroidInputManager(_ref) {
747
757
  });
748
758
  }
749
759
  if (slate.Path.equals(targetRange.anchor.path, targetRange.focus.path)) {
750
- var _Range$edges5 = slate.Range.edges(targetRange),
751
- _Range$edges6 = _slicedToArray(_Range$edges5, 2),
752
- _start2 = _Range$edges6[0],
753
- _end2 = _Range$edges6[1];
760
+ var _Range$edges3 = slate.Range.edges(targetRange),
761
+ _Range$edges4 = _slicedToArray(_Range$edges3, 2),
762
+ _start = _Range$edges4[0],
763
+ _end = _Range$edges4[1];
754
764
  var _diff = {
755
- start: _start2.offset,
756
- end: _end2.offset,
765
+ start: _start.offset,
766
+ end: _end.offset,
757
767
  text: _text
758
768
  };
759
769
  // COMPAT: Swiftkey has a weird bug where the target range of the 2nd word
@@ -775,7 +785,7 @@ function createAndroidInputManager(_ref) {
775
785
  } else if (type === 'insertText') {
776
786
  if (insertPositionHint === null) {
777
787
  insertPositionHint = _diff;
778
- } else if (insertPositionHint && slate.Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start2.offset) {
788
+ } else if (insertPositionHint && slate.Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start.offset) {
779
789
  insertPositionHint = _objectSpread$7(_objectSpread$7({}, insertPositionHint), {}, {
780
790
  text: insertPositionHint.text + _text
781
791
  });
@@ -786,7 +796,7 @@ function createAndroidInputManager(_ref) {
786
796
  insertPositionHint = false;
787
797
  }
788
798
  if (canStoreDiff) {
789
- storeDiff(_start2.path, _diff);
799
+ storeDiff(_start.path, _diff);
790
800
  return;
791
801
  }
792
802
  }