Commit Graph

17 Commits

Author SHA1 Message Date
Yanzhen Yu
4709c720cd also resolve missing previous node 2018-11-05 13:20:42 +08:00
Yanzhen Yu
0fb8fc4e0b Fix add node logic with missingNextNodeMap
This patch include a breaking change to the recorder's event data.

We used to consider mirror.getId will always return the id of the
target node because we keep serialize every node. But if we call
mirror.getId before serialization then bug happened. This could
happen when we get nextId of newly added nodes if its next sibling
was also newly added.
So we have to return -1 as the id of node which was not serialized
and when we building added nodes in the replayer we should handle
this.

For example, nodes el1, el2 were added together and el1's nextId
will be -1 since el2 was not serialized at that moment. Now we
call el1 as a 'missing next node' and not append it into the DOM
tree after building, instead we store it in a missingNextNodeMap.
After a added node in the same mutation was successfully appened
we will check whether it has a previous id and the id was pointed
to some nodes in the map, if so, we will insert that node before
it and delete the node from map.
2018-11-02 19:23:03 +08:00
Yanzhen Yu
e9add18029 Implement #2: simulate hover event 2018-11-01 13:31:09 +08:00
Yanzhen Yu
8acf670a99 add a has method to mirror for checking whether an id is in the map 2018-10-31 12:06:32 +08:00
Yanzhen Yu
d588f738b8 rewrite mutation observer handler with lazy child list calculation 2018-10-22 23:08:05 +08:00
Yanzhen Yu
a88a79d821 add meta event and fix childList observer, also update related replayer 2018-10-22 10:48:56 +08:00
Yanzhen Yu
8186f05e1c export more props of replayer to the UI 2018-10-17 17:47:38 +08:00
Yanzhen Yu
49cd7b4db3 align id map by skip extra added nodes 2018-10-16 15:29:52 +08:00
Yanzhen Yu
85a56d2047 fix scroll value and record viewport when loaded 2018-10-12 13:08:03 +08:00
Yanzhen Yu
c07cce74bf improve record method and bump 0.2.0 2018-10-11 17:30:54 +08:00
Yanzhen Yu
40f29e5353 add input event observer and hook the value setter 2018-10-11 16:12:32 +08:00
Yanzhen Yu
46ab1d6e80 serialize newly added nodes and update id node map when childList changed 2018-10-09 10:52:20 +08:00
Yanzhen Yu
1f10b70d30 add scroll and viewport resize observers 2018-10-09 10:33:24 +08:00
Yanzhen Yu
64d4c541ee add mouse interactions observer 2018-10-08 18:37:40 +08:00
Yanzhen Yu
a33b24a676 add mouse movement observer 2018-10-08 17:46:15 +08:00
Yanzhen Yu
427acff3d6 change observed mutations into serializable records 2018-10-08 15:47:21 +08:00
Yanzhen Yu
f8079fbea7 init the repo and integrate rrweb-snapshot 2018-10-06 23:26:52 +08:00