[lib] Inline useBindCallKeyserverEndpointSelector
Summary:
In a later diff we'll need to know the value of paramOverride from inside this code. I could pass it in as an additional argument, but I decided that reducing the indirection by inlining useBindCallKeyserverEndpointSelector would make the code more readable.
Additionally, the _memoize in useBindCallKeyserverEndpointSelector was not useful, so I removed it. Each call of useKeyserverCall will always pass in the same ActionFunc, so there's no need to keep a cache local to that invocation that is keyed on ActionFunc. The use of _memoize was left over from when I converted this from a global createSelector model, where it was useful. I should've removed it then.
Depends on D10686
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/D10687