@liveblocks/yjs
Advanced tools
Changelog
v2.16.0
Our error listener APIs will now receive more errors in general, including errors from using Comments & Notifications. Previously, these would only receive room connection errors from Presence, Storage, or Yjs.
For example, now when creation of a thread fails, deletion of a comment fails, marking a notification as read fails, etc.
@liveblocks/react
useErrorListener()
// ❌ Before: required a RoomProvider and would only notify about errors for that room
// ✅ Now: requires a LiveblocksProvider and will notify about errors for any room
useErrorListener((err: LiveblocksError) => {
/* show toast, or notify Sentry, Datadog, etc */
});
See the Upgrade Guide for 2.16 to learn how to adapt your code.
We now support filtering threads by absence of metadata as well in
useThreads({ query })
(or useUserThreads_experimental({ query })
).
For example, you can now filter threads that do not have a color
attribute set
in their metadata:
useThreads({
query: {
// Filter any "pinned" threads that don't have a color set
metadata: {
pinned: true,
color: null, // ✨
},
},
});
See the Upgrade Guide for 2.16 to learn how to adapt your code.
@liveblocks/client
The error listener APIs will now receive more errors in general, including errors from using Comments & Notifications. Previously, these would only receive room connection errors from Presence, Storage, or Yjs.
// 👌 Same as before, but might now also receive errors related to Comments & Notifications
room.subscribe("error", (err) => { ... });
@liveblocks/react-ui
<Icon.* />
via import { Icon } from "@liveblocks/react-ui"
.@liveblocks/react-lexical
and @liveblocks/react-tiptap
<Toolbar />
and <FloatingToolbar />
components to simplify building
editor toolbars. They come with default controls out-of-the-box based on what
the editor they’re attached to supports, but they’re also heavily extendable
and customizable. Use inner components like <Toolbar.Toggle />
and
<Toolbar.Separator />
to extend the defaults with your own actions, or start
from scratch while customizing some of the defaults via
<Toolbar.SectionInline />
or <Toolbar.BlockSelector />
for example.@liveblocks/react-lexical
isTextFormatActive
and isBlockNodeActive
utilities.@liveblocks/yjs
useV2Encoding_experimental
to LiveblocksYjsProvider
to
enable experimental V2 encoding for Yjs.Changelog
2.15.2
useLayoutEffect
warnings when using React versions lower than 18.3.0 and
SSR.@liveblocks/react
useThreads()
would not always reuse the
cache correctly.Changelog
2.15.1
"use client"
directives are on top of
files after build.