Checkout: Modify useCreateExistingCards to only rememoize only when ids change #49057
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
useCreateExistingCards
hook creates composite-checkout payment method objects and has a dependency on an array of objects from the stored cards endpoint. Previously, the payment methods were recreated any time the stored cards array changed. Since the array is an object, this is an referential equality check.Here, we change the hook such that it will only recreate the payment methods if the ids of the stored cards change. Since the ids are numbers or strings, this is a primitive value check.
This will make it easier to call the hook without recreating the payment methods each time since the stored card data typically comes from the
getStoredCards
selector which always returns a new array.This is part of #48966
Testing instructions