Skip to content

Commit dbdad45

Browse files
committed
Reset core resolvers on site change
1 parent bf7951e commit dbdad45

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

client/gutenberg/editor/controller.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export const resetGutenbergState = ( registry, selectedSiteId ) => {
121121
const previousGutenbergSiteId = select( 'gutenberg/calypso' ).getSelectedSiteId();
122122

123123
if ( !! previousGutenbergSiteId && previousGutenbergSiteId !== selectedSiteId ) {
124-
registry.reset( 'core/data' );
124+
registry.resetCoreResolvers();
125125
}
126126
dispatch( 'gutenberg/calypso' ).setSelectedSiteId( selectedSiteId );
127127
};

client/gutenberg/editor/init.js

+10
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,16 @@ const addResetToRegistry = registry => {
5353
reset( namespace ) {
5454
stores.forEach( store => store.dispatch( { type: 'GUTENLYPSO_RESET', namespace } ) );
5555
},
56+
resetCoreResolvers() {
57+
// @see https://github.com/WordPress/gutenberg/blob/e1092c0d0b75fe53ab57bc6c4cc9e32cb2e74e40/packages/data/src/resolvers-cache-middleware.js#L14-L34
58+
const resolvers = registry.select( 'core/data' ).getCachedResolvers( 'core' );
59+
debug( `Resetting core store resolvers: ${ Object.keys( resolvers ).toString() }` );
60+
Object.entries( resolvers ).forEach( ( [ selectorName, resolversByArgs ] ) => {
61+
resolversByArgs.forEach( ( value, args ) => {
62+
registry.dispatch( 'core/data' ).invalidateResolution( 'core', selectorName, args );
63+
} );
64+
} );
65+
},
5666
};
5767
};
5868

0 commit comments

Comments
 (0)