Commit graph

28 commits

Author SHA1 Message Date
Bruno Windels
3abdf6b100 also serialize to text and method to tell us if we need html for model 2019-05-14 15:38:16 +01:00
Bruno Windels
2fbe73e658 draft of formatting 2019-05-14 15:38:16 +01:00
Bruno Windels
eaf43d7277 correctly parse BRs 2019-05-14 15:38:16 +01:00
Bruno Windels
c44fed4bea even less logging 2019-05-14 15:38:16 +01:00
Bruno Windels
a3b02cf0cc make logging quiet 2019-05-14 15:38:16 +01:00
Bruno Windels
9e0816c51c find caret offset and calculate editor text in same tree-walking algo
instead of having the same logic twice
2019-05-14 15:38:16 +01:00
Bruno Windels
7ebb6ce621 WIP commit, newlines sort of working 2019-05-14 15:38:16 +01:00
Bruno Windels
9f597c7ec0 no comment nodes without react,so can bring this back to simpler version 2019-05-14 15:38:16 +01:00
Bruno Windels
7a85dd4e61 after completion, set caret in next part at start
instead of end of current part
2019-05-14 15:38:16 +01:00
Bruno Windels
2c3453d307 put caret after replaced part if no caretOffset is given by autocomplete 2019-05-14 15:38:16 +01:00
Bruno Windels
1a577eed11 take non-editable parts into account for new caret position 2019-05-14 15:38:16 +01:00
Bruno Windels
580a89875a fix autocompl. not always appearing/being updated when there is no part 2019-05-14 15:38:16 +01:00
Bruno Windels
bc14d4f58f comment 2019-05-14 15:38:16 +01:00
Bruno Windels
22587da5ff close autocomplete on enter 2019-05-14 15:38:16 +01:00
Bruno Windels
ffff66a92d handle Escape properly
close autocomplete, and also replace with plain text part.

also remove leftover logging
2019-05-14 15:38:16 +01:00
Bruno Windels
64b171198c rerender through callback instead of after modifying model
this way rendering is centralized and we can better rerender
from interaction in the autocompleter
(we didn't have access to caret before)
2019-05-14 15:38:16 +01:00
Bruno Windels
aa1b4bb91e keep auto complete code close to each other 2019-05-14 15:38:16 +01:00
Bruno Windels
5e6367ab57 basic support for non-editable parts
e.g. pills, they get deleted when any character of them is removed
later on we also shouldn't allow the caret to be set inside of them
2019-05-14 15:38:16 +01:00
Bruno Windels
4bb8b79942 initial auto complete wrapper, make existing autocompleter work w/ model 2019-05-14 15:38:16 +01:00
Bruno Windels
bb73521f0c prefer textContent over innerText as it's faster
and transforms the text less
2019-05-14 15:38:16 +01:00
Bruno Windels
1330b438d6 initial support for auto complete in model and parts
also move part creation out of model, into partcreator, which
can then also contain dependencies for creating the auto completer.
2019-05-14 15:38:16 +01:00
Bruno Windels
a2f1f49972 update the DOM manually as opposed through react rendering
react messes up the DOM sometimes because of, I assume, not
being aware of the changes to the real DOM by contenteditable.
2019-05-14 15:38:16 +01:00
Bruno Windels
85adc8953f remove logging 2019-05-14 15:38:16 +01:00
Bruno Windels
0f38753dba some comments 2019-05-14 15:38:16 +01:00
Bruno Windels
8f0074f824 ignore react comment nodes when locating/setting caret 2019-05-14 15:38:16 +01:00
Bruno Windels
6be6492cd2 initial parsing of pills for editor 2019-05-14 15:38:16 +01:00
Bruno Windels
76bb56a2bf initial hookup editor code with react component 2019-05-14 15:38:16 +01:00
Bruno Windels
9f98a6c0e6 add converted prototype code 2019-05-14 15:38:16 +01:00