@@ -122,36 +122,39 @@ export class QueriesObserver<
122122 ( observer , index ) => observer !== prevObservers [ index ] ,
123123 )
124124
125- if ( prevObservers . length === newObservers . length && ! hasIndexChange ) {
126- const hasResultChangeOnly = newResult . some ( ( result , index ) => {
127- const prev = this . #result[ index ]
128- return ! prev || ! shallowEqualObjects ( result , prev )
129- } )
125+ const hasResultChange =
126+ prevObservers . length === newObservers . length && ! hasIndexChange
127+ ? newResult . some ( ( result , index ) => {
128+ const prev = this . #result[ index ]
129+ const isChanged = ! prev || ! shallowEqualObjects ( result , prev )
130+ console . log ( `Result ${ index } :` , {
131+ hasData : ! ! result . data ,
132+ prevData : prev ?. data ,
133+ dataChanged : result . data !== prev ?. data ,
134+ } )
135+ return isChanged
136+ } )
137+ : true
130138
131- if ( hasResultChangeOnly ) {
132- this . #result = newResult
133- this . #notify( )
134- }
139+ if ( ! hasIndexChange && ! hasResultChange ) return
135140
136- return
141+ if ( hasIndexChange ) {
142+ this . #observers = newObservers
137143 }
138-
139- this . #observers = newObservers
140144 this . #result = newResult
141145
142- if ( ! this . hasListeners ( ) ) {
143- return
144- }
145-
146- difference ( prevObservers , newObservers ) . forEach ( ( observer ) => {
147- observer . destroy ( )
148- } )
146+ if ( ! this . hasListeners ( ) ) return
149147
150- difference ( newObservers , prevObservers ) . forEach ( ( observer ) => {
151- observer . subscribe ( ( result ) => {
152- this . #onUpdate ( observer , result )
148+ if ( hasIndexChange ) {
149+ difference ( prevObservers , newObservers ) . forEach ( ( observer ) => {
150+ observer . destroy ( )
153151 } )
154- } )
152+ difference ( newObservers , prevObservers ) . forEach ( ( observer ) => {
153+ observer . subscribe ( ( result ) => {
154+ this . #onUpdate( observer , result )
155+ } )
156+ } )
157+ }
155158
156159 this . #notify( )
157160 } )
0 commit comments