#3463618: Include component props form in undo
When !178 (merged) gets merged, we will already have most of what we need for this feature: the component form gets properly re-rendered.
By setting the key
prop to the component's ID in !178 (merged) we tell React not to re-render the form unless another component is selected. This was necessary to avoid re-rendering the form while the user is interacting with a field, which would interrupt the user by dropping the focus from the form. Now we need to extend the key to account for prop changes coming from undo/redo. @jessebaker had the creative idea to append how many times undo/redo was hit — basically changing the key any time undo/redo is used. Iterating on this, I added a Redux middleware that generates a unique ID for each undo/redo action that is dispatched, and also stores this unique ID in the Redux store.