shortcut: $ to jump to end of contenteditable node
[apps/outliner/.git] / src / client.ts
index 12f6b1048631bfe234e07b27d4b902178f61a42f..d9bb682279dee4c58e00b751ce1cf2fda4845487 100644 (file)
@@ -144,6 +144,28 @@ keyboardJS.withContext('navigation', () => {
     save();
   });
 
+  keyboardJS.bind('shift + 4', e => {
+    e.preventDefault();
+    // switch to editing mode
+    cursor.get().classList.add('hidden-cursor');
+    const contentNode = cursor.get().querySelector('.nodeContent') as HTMLElement;
+
+    // swap the content to the default!
+    contentNode.innerHTML = outline.data.contentNodes[cursor.getIdOfNode()].content;
+    contentNode.contentEditable = "true";
+
+    const range = document.createRange();
+    range.selectNodeContents(contentNode);
+    range.collapse(false);
+
+    const selection = window.getSelection();
+    selection.removeAllRanges();
+    selection.addRange(range);
+
+    contentNode.focus();
+    keyboardJS.setContext('editing');
+  });
+
   keyboardJS.bind('i', e => {
     e.preventDefault();
     // switch to editing mode