This diff updates AutoJoinCommunityHandler to use the useJoinCommunity hook. Since the logic for useJoinCommunity can only handle one community at a time, we needed to create a secondary handler component (JoinHandler) which handles calling useJoinCommunity and then awaiting the promise that gets returned by the hook.
Depends on D12713
Can we extract this to its own line? Similar to how we want await to be visible, I think it's good for hooks to be as well