Fix undo/redo exception when there are no stored elements #59
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Right now there are two problems with undo and redo. One is that when redoaction runs and storedUndo is empty it pushes undefined into storedElement which will cause a type error. A similar thing will happen on undoaction with undefined being pushed onto storedUndo except a type error won't occur until you click redo.
I created a jsbin to demonstrate the problem. If you click undo you can see on the console that undefined gets added to storedUndo and if you click redo undefined is added to storedElement as well as a type error.
The other problem is that the undo and redo buttons aren't being disabled because they are not found when checkUndoRedo is called as children searches the direct children of the current element.
Technically, fixing the undo/redo buttons getting disabled would prevent the first problem from occurring but I added a fix to prevent adding undefined to storedUndo and storedElement just to be safe.