Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

45 wiersze
1.5 KiB

  1. /**
  2. * Copyright (c) Facebook, Inc. and its affiliates.
  3. *
  4. * This source code is licensed under the MIT license found in the
  5. * LICENSE file in the root directory of this source tree.
  6. *
  7. * @format
  8. *
  9. * @emails oncall+draft_js
  10. */
  11. 'use strict';
  12. var EditorState = require("./EditorState");
  13. var expandRangeToStartOfLine = require("./expandRangeToStartOfLine");
  14. var getDraftEditorSelectionWithNodes = require("./getDraftEditorSelectionWithNodes");
  15. var moveSelectionBackward = require("./moveSelectionBackward");
  16. var removeTextWithStrategy = require("./removeTextWithStrategy");
  17. function keyCommandBackspaceToStartOfLine(editorState, e) {
  18. var afterRemoval = removeTextWithStrategy(editorState, function (strategyState) {
  19. var selection = strategyState.getSelection();
  20. if (selection.isCollapsed() && selection.getAnchorOffset() === 0) {
  21. return moveSelectionBackward(strategyState, 1);
  22. }
  23. var ownerDocument = e.currentTarget.ownerDocument;
  24. var domSelection = ownerDocument.defaultView.getSelection();
  25. var range = domSelection.getRangeAt(0);
  26. range = expandRangeToStartOfLine(range);
  27. return getDraftEditorSelectionWithNodes(strategyState, null, range.endContainer, range.endOffset, range.startContainer, range.startOffset).selectionState;
  28. }, 'backward');
  29. if (afterRemoval === editorState.getCurrentContent()) {
  30. return editorState;
  31. }
  32. return EditorState.push(editorState, afterRemoval, 'remove-range');
  33. }
  34. module.exports = keyCommandBackspaceToStartOfLine;