v0.17.5 -
In @liveblocks/react:
- Fix bug where changing the
keyargument ofuseMap(),useList(),useObject()did not resubscribe to updates correctly - Ignore changes to the
RoomProvider's initial presence/storage props on subsequent renders. This makes it behave closer touseState(initialState)
- Fix bug where changing the
-
v0.17.4 Fix missing documentation for hooks created via
createRoomContext().v0.17.1 Fix
@liveblocks/nodespackaging.v0.17.0 For information, please read our Upgrade Guide.
TypeScript improvements ✨
This release contains major TypeScript improvements. The recommended setup now is that you define your own Presence and Storage types at the highest level (i.e. where you set up the room). After that initial one-time setup, you will no longer need to provide any extra type annotations anywhere for your Liveblocks code! 🙌
To learn how to set that up, follow the instructions in our Upgrade Guide.
- No more
anytypes used (in@liveblocks/clientand@liveblocks/react) - All APIs that work with Presence data will now require it to be JSON-serializable
- All APIs that work with Storage data will now require it to be LSON (= JSON + Live structures)
- All Live structures now take mandatory type params for their payloads, just
like the built-in array, object, and map types do:
LiveMap<K, V>(likeMap<K, V>)LiveObject<{ a: number, b: string }>(like, for example,{ a: number, b: string })LiveList<T>(likeArray<T>)
React Native support ✨
We now support React Native! To learn how to use Liveblocks in your React Native projects, see our API reference. It's surprisingly simple!
New APIs ✨
-
In @liveblocks/react:
createRoomContext()is now the preferred way to initialize hooks.
-
In the API:
- New endpoint to Get Users in a Room
- New endpoint to Get a list of all Rooms
Bug fixes 🐛
- Improved conflict resolution on LiveList
- Various minor internal bug fixes
Breaking changes
-
In @liveblocks/client:
- Removed old
Room.unsubscribe()API
- Removed old
New deprecations
-
In @liveblocks/client:
- The
defaultPresenceoption toclient.enter()will get renamed toinitialPresence - The
defaultStorageRootoption toclient.enter()will get renamed toinitialStorage - Calling
new LiveMap(null)will stop working. Please usenew LiveMap(), ornew LiveMap([])
- The
-
In @liveblocks/react:
- Importing the React hooks directly is deprecated, instead use the new
createRoomContext()helper. For help, read the Recommended Upgrade Steps section within our Upgrade Guide - The second argument to
useList(),useObject(), anduseMap()is deprecated - The RoomProvider's
defaultPresenceis renamed toinitialPresence - The RoomProvider's
defaultStorageRootis renamed toinitialStorage
- Importing the React hooks directly is deprecated, instead use the new
- No more
v0.16.17 Fix bug in internal code where some legal authentication tokens would be considered invalid.
v0.16.16 Internals only.
v0.16.15 Internals only.
v0.16.14 Fix an issue where the current user's info would not properly display accented characters.
v0.16.13 (Unpublished.)
v0.16.12 Internals only.