Feature Request: `autoEnter` for SpaceProvider
Would it be possible to optionally enter spaces automatically? Personally, I see more use cases where I immediately want to enter a space than not.
Suggestion:
<SpacesProvider client={spaces}>
<SpaceProvider name="my-space" autoEnter={true} user={{ name: 'Luigi'}}>
<App />
</SpaceProvider>
</SpacesProvider>
Right now we're solving this in a "hacky" way so we don't have to do it in each component separately:
<SpacesProvider client={spaces}>
<SpaceProvider name="my-space">
<EnterSpace user={user}>
{children}
</EnterSpace>
</SpaceProvider>
</SpacesProvider>
...
const EnterSpace = ({ children, user }) => {
const { space } = useSpace();
const [spaceEntered, setSpaceEntered] = useState(false);
useEffect(() => {
const enterSpace = async () => {
await space.enter(user);
setSpaceEntered(true);
};
const leaveSpace = async () => {
await space.leave();
};
if (space) {
enterSpace();
}
return () => {
if (space) {
leaveSpace();
}
};
}, [space, user]);
if (!spaceEntered) {
return <LoadingIndicator />
}
return <>{children}</>;
};
Or is there something we're missing?
Thanks for the suggested improvement @pchr-srf. One of our React engineers will reply shortly.
Thanks, @pchr-srf. This looks like a very practical improvement. I imagine you'd expect a way to pass something like <LoadingIndicator /> too.
I'll put this forward to our product team.
Hi @dpiatek and @mattheworiordan ! yeah exactly, that would be the idea 🙂 Thanks!