Fix incorrect data while loading in useRecommendedPlugins.
See the incorrect data issue in https://github.com/woocommerce/woocommerce/pull/37126#discussion_r1141936304.
This commit is contained in:
parent
fe4e28d511
commit
c6bcf9fa67
|
@ -15,7 +15,10 @@ const selector = 'getRecommendedPlugins';
|
|||
const category = 'marketing';
|
||||
|
||||
export const useRecommendedPlugins = () => {
|
||||
const { data: dataRecommendedChannels } = useRecommendedChannels();
|
||||
const {
|
||||
loading: loadingRecommendedChannels,
|
||||
data: dataRecommendedChannels,
|
||||
} = useRecommendedChannels();
|
||||
const { invalidateResolution, installAndActivateRecommendedPlugin } =
|
||||
useDispatch( STORE_KEY );
|
||||
|
||||
|
@ -24,25 +27,28 @@ export const useRecommendedPlugins = () => {
|
|||
invalidateResolution( selector, [ category ] );
|
||||
};
|
||||
|
||||
const { isLoading, plugins } = useSelect( ( select ) => {
|
||||
const { getRecommendedPlugins, hasFinishedResolution } =
|
||||
select( STORE_KEY );
|
||||
const { loading: loadingRecommendedPlugins, data: dataRecommendedPlugins } =
|
||||
useSelect( ( select ) => {
|
||||
const { getRecommendedPlugins, hasFinishedResolution } =
|
||||
select( STORE_KEY );
|
||||
|
||||
return {
|
||||
isLoading: ! hasFinishedResolution( selector, [ category ] ),
|
||||
plugins: getRecommendedPlugins< RecommendedPlugin[] >( category ),
|
||||
};
|
||||
}, [] );
|
||||
return {
|
||||
loading: ! hasFinishedResolution( selector, [ category ] ),
|
||||
data: getRecommendedPlugins< RecommendedPlugin[] >( category ),
|
||||
};
|
||||
}, [] );
|
||||
|
||||
const loading = loadingRecommendedPlugins || loadingRecommendedChannels;
|
||||
|
||||
const recommendedPluginsWithoutChannels = differenceWith(
|
||||
plugins,
|
||||
dataRecommendedPlugins,
|
||||
dataRecommendedChannels || [],
|
||||
( a, b ) => a.product === b.product
|
||||
);
|
||||
|
||||
return {
|
||||
isInitializing: ! recommendedPluginsWithoutChannels.length && isLoading,
|
||||
isLoading,
|
||||
isInitializing: ! recommendedPluginsWithoutChannels.length && loading,
|
||||
isLoading: loading,
|
||||
plugins: recommendedPluginsWithoutChannels,
|
||||
installAndActivate,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue