File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed
packages/react/src/composite/list Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -63,9 +63,17 @@ export function CompositeList<Metadata>(props: CompositeList.Props<Metadata>) {
6363 return undefined ;
6464 }
6565
66- const mutationObserver = new MutationObserver ( ( ) => {
67- lastTickRef . current = { } ;
68- setMapTick ( lastTickRef . current ) ;
66+ const mutationObserver = new MutationObserver ( ( entries ) => {
67+ const diff = new Set < Node > ( ) ;
68+ const updateDiff = ( node : Node ) => diff . has ( node ) ? diff . delete ( node ) : diff . add ( node ) ;
69+ entries . forEach ( ( entry ) => {
70+ entry . removedNodes . forEach ( updateDiff ) ;
71+ entry . addedNodes . forEach ( updateDiff ) ;
72+ } ) ;
73+ if ( diff . size === 0 ) {
74+ lastTickRef . current = { } ;
75+ setMapTick ( lastTickRef . current ) ;
76+ }
6977 } ) ;
7078
7179 sortedMap . forEach ( ( _ , node ) => {
You can’t perform that action at this time.
0 commit comments