[lib][native] Have createBoundServerCallsSelector take keyserverID in first
Summary:
We have two createBoundServerCallsSelectors currently: the original in call-keyserver-endpoint-provider.react.js (formerly in action-utils.js), and a second in lib/utils/keyserver-call.js`. The purpose of this diff is to set the groundwork to unify these two.
Currently, the original createBoundServerCallsSelector takes in the actionFunc first, and then returns a selector that takes an object of params that includes keyserverID. This makes it impossible to use in the second case, since in that case we want a separate selector for each keyserver.
This diff updates the original createBoundServerCallsSelector to make it possible to use in keyserver-call.js.
In later diffs, we'll further unify the logic in keyserver-call.js into call-keyserver-endpoint-provider.react.js.
Depends on D10681
Test Plan:
I tested this stack using the following procedure:
- I tested primarily on native
- I compiled a dev build and deployed it to an iOS simulator
- I created a brand new account on my local keyserver using the iOS app
- I ran Redux dev tools: cd native && yarn redux-devtools
- I added a 30s sleep at the start of resolveKeyserverSessionInvalidation
- I made KeyserverConnectionsHandler return null so that the socket wouldn’t automatically recover the session prior to my testing
- I killed the app
- I deleted all of the test user’s cookie
- I then opened the app again and navigated to a chat and sent two messages
- By following the Redux monitor, I was able to see that the keyserver session invalidation recovery was successful, and both messages were eventually sent after the 30s sleep concluded
- On web, we don’t support keyserver session invalidation. However, I tested to make sure that the web app still loaded after my changes
Reviewers: tomek, inka, atul
Reviewed By: tomek
Differential Revision: https://phab.comm.dev/D10682