Skip to content

1.5.0

Compare
Choose a tag to compare
@nvie nvie released this 23 Oct 16:08
· 243 commits to main since this release

Support multiple RoomProviders, or mixing and matching our React package in the same app with a Redux and/or Zustand instance.

At the client level, there is a new API for entering/leaving rooms, which we’re now recommending over the old APIs. (The old APIs remain working exactly how they are today, however.)

// Old APIs we'll no longer be recommending (but that will remain working)
const room = client.enter("my-room", options);
client.getRoom("my-room");
client.leave("my-room");
// New API we'll be recommending instead
const { room, leave } = client.enterRoom("my-room", options);
leave();

@liveblocks/client

  • New client config option: backgroundKeepAliveTimeout (a numeric value in milliseconds). See docs.
  • New APIs:
    • Client.enterRoom(roomId, options) – enters the room and return both the room and an "unsubscribe function" to leave that room again. This newer API supports entering/leaving the same room multiple times, making it possible to connect to the same room from different parts of your application. See docs.
    • Client.logout() – Call this on the Liveblocks client when you log out a user in your application. It will purge all auth tokens and force-leave any rooms, if any are still connected. See docs.
    • LiveList.clone() – see docs.
    • LiveMap.clone() – see docs.
    • LiveObject.clone() – see docs.
  • Deprecated APIs:
    • client.enter(roomId, options)
    • client.leave(roomId)
  • Renamed enter option: shouldInitiallyConnectautoConnect. Its meaning or working did not change.
  • Fixes a potential Cannot set parent: node already has a parent error when initializing storage with Live datastructures that are already tied to a Storage tree.

@liveblocks/react

  • Support using multiple RoomProvider components in your component tree for the same room ID.
  • Renamed RoomProvider prop: shouldInitiallyConnectautoConnect. Its meaning or working did not change.
  • New hook:
    • useOthersListener({ type, user, others }), see docs

@liveblocks/redux

  • Breaking: The leaveRoom() function no longer accepts a roomId. It will always leave the currently joined room.

@liveblocks/zustand

  • The enterRoom() function will now return a leave callback function.
  • Breaking: The leaveRoom() function no longer accepts a roomId. It will always leave the currently joined room.