application/components/common/rich-editor2/plugins/soft-breaks.js
- export default function(options = {}) {
- const myOptions = Object.assign({}, {
- 'shift': false,
- 'inBlocks': []
- }, options);
-
- const useShift = myOptions.shift;
-
- return {
- onKeyDown(e, editor, next) {
-
- const {start} = editor.value.selection;
- const {document} = editor.value;
-
-
- if (e.key != 'Enter') {
- return next();
- }
-
- const closest = document.getClosestBlock(start.key);
- let inBlock = false;
-
- if (myOptions.inBlocks.indexOf(closest.get('type')) !== -1) {
- inBlock = true;
- }
-
- if (useShift && e.shiftKey === false && inBlock == false) {
- return next();
- }
-
- // for some reason, if you don't insert a non-zero width character
- // the cursor moves back to the head of the block and the new line
- // isn't inserted
- editor.insertText("\n ")
- .moveBackward(1);
- }
- };
- }