Skip to content

Feature Request: autoEnter for SpaceProvider #241

Description

@pchr-srf

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions