@@ -11,6 +11,7 @@ import {
1111 EntityQueryEndpointName ,
1212} from '../types' ;
1313import { createEntityInstance } from './create-entity-instance' ;
14+ import { findEntityInPages } from './find-entity-in-pages' ;
1415import { mergeEntity } from './merge-entity' ;
1516
1617export const createEntityApiUtils = <
@@ -88,22 +89,11 @@ export const createEntityApiUtils = <
8889 ) ;
8990 }
9091 } else if ( 'pages' in endpointData && Array . isArray ( endpointData . pages ) ) {
91- let existingItemIndex = - 1 ;
92- const existingPageIndex = endpointData . pages . findIndex ( ( page ) => {
93- const itemIndex = page . data . findIndex ( ( item ) => item . id === entityData . id ) ;
92+ const { pageIndex, itemIndex } = findEntityInPages ( endpointData . pages , entityData . id ) ;
9493
95- if ( itemIndex !== - 1 ) {
96- existingItemIndex = itemIndex ;
97-
98- return true ;
99- }
100-
101- return false ;
102- } ) ;
103-
104- if ( existingPageIndex > - 1 && existingItemIndex > - 1 ) {
105- endpointData . pages [ existingPageIndex ] . data [ existingItemIndex ] = mergeEntity (
106- endpointData . pages [ existingPageIndex ] . data [ existingItemIndex ] ,
94+ if ( pageIndex > - 1 && itemIndex > - 1 ) {
95+ endpointData . pages [ pageIndex ] . data [ itemIndex ] = mergeEntity (
96+ endpointData . pages [ pageIndex ] . data [ itemIndex ] ,
10797 existingEntity ,
10898 ) ;
10999 }
@@ -155,21 +145,10 @@ export const createEntityApiUtils = <
155145 endpointData . pagination . total -- ;
156146 }
157147 } else if ( 'pages' in endpointData && Array . isArray ( endpointData . pages ) ) {
158- let existingItemIndex = - 1 ;
159- const existingPageIndex = endpointData . pages . findIndex ( ( page ) => {
160- const itemIndex = page . data . findIndex ( ( item ) => item . id === id ) ;
161-
162- if ( itemIndex !== - 1 ) {
163- existingItemIndex = itemIndex ;
164-
165- return true ;
166- }
167-
168- return false ;
169- } ) ;
148+ const { pageIndex, itemIndex } = findEntityInPages ( endpointData . pages , id ) ;
170149
171- if ( existingPageIndex > - 1 && existingItemIndex > - 1 ) {
172- endpointData . pages [ existingPageIndex ] . data . splice ( existingItemIndex , 1 ) ;
150+ if ( pageIndex > - 1 && itemIndex > - 1 ) {
151+ endpointData . pages [ pageIndex ] . data . splice ( itemIndex , 1 ) ;
173152 endpointData . pages . filter ( ( pages ) => ! ! pages . data . length ) ;
174153
175154 for ( let i = 0 ; i < endpointData . pages . length ; i ++ ) {
0 commit comments