LiveBlocks v2.18.0发布:用户通知设置功能详解
项目简介
LiveBlocks是一个为实时协作应用提供基础设施的JavaScript库集合,它简化了多人协作、实时数据同步等功能的实现。通过提供客户端SDK和服务器端API,开发者可以快速构建类似Google Docs、Figma这样的实时协作应用。
用户通知设置功能发布
LiveBlocks最新发布的v2.18.0版本引入了一项重要功能——用户通知设置管理。这项功能允许开发者在应用中创建精美的用户通知设置页面,让用户能够自定义他们在不同渠道接收的通知类型。
功能概览
新版本在@liveblocks/client、@liveblocks/react和@liveblocks/node三个核心包中新增了管理用户通知设置的API。开发者现在可以支持以下几种通知类型:
- thread:线程相关的通知
- textMention:文本中被提及的通知
- 自定义通知类型(以
$开头)
这些通知可以通过以下渠道发送:
- 电子邮件
- Slack
- Microsoft Teams
- Web Push
控制面板集成
LiveBlocks还新增了通知设置控制面板,开发者可以在这里启用或禁用特定渠道的特定通知类型。这意味着LiveBlocks的内部通知系统会根据这些设置决定是否向你的webhook发送事件。
各包具体实现
@liveblocks/client
客户端包新增了两个方法来获取和更新用户通知设置:
import { createClient } from '@liveblocks/client'
const client = createClient({ ... })
// 获取当前通知设置
const settings = await client.getNotificationSettings();
// 更新通知设置
const updatedSettings = await client.updateNotificationSettings({
email: {
thread: false, // 禁用电子邮件的线程通知
}
});
@liveblocks/react
React包新增了一组钩子来管理用户通知设置:
- useNotificationSettings:同时获取和更新通知设置
import { useNotificationSettings } from "@liveblocks/react";
const [{ settings }, updateSettings] = useNotificationSettings();
const onSave = () => {
updateSettings({
slack: {
textMention: true, // 启用Slack的提及通知
},
});
};
- useUpdateNotificationSettings:仅更新通知设置(如退订按钮)
import { useUpdateNotificationSettings } from "@liveblocks/react";
const updateSettings = useUpdateNotificationSettings();
const onUnsubscribe = () => {
updateSettings({
slack: {
thread: false, // 禁用Slack的线程通知
},
});
};
@liveblocks/node
Node.js客户端新增了三个方法来管理用户通知设置:
import { Liveblocks } from "@liveblocks/node";
const liveblocks = new Liveblocks({ secret: "sk_xxx" });
// 获取用户通知设置
const settings = await liveblocks.getNotificationSettings({ userId });
// 更新用户通知设置
const updatedSettings = await liveblocks.updateNotificationSettings({
userId,
data: {
teams: {
$fileUploaded: true, // 启用Teams的文件上传自定义通知
},
},
});
// 删除用户通知设置
await liveblocks.deleteNotificationSettings({ userId });
邮件通知改进
@liveblocks/emails包中的两个邮件准备函数有了行为改进:
prepareThreadNotificationEmailAsHtmlprepareThreadNotificationEmailAsReact
现在这些函数会考虑之前邮件的数据内容,避免重复提取已经包含在之前邮件中但尚未阅读的提及和回复。这一改进使得通知邮件更加智能,减少了冗余信息。
技术实现建议
对于开发者来说,实现通知设置功能时可以考虑以下最佳实践:
- 渐进式增强:先实现核心渠道(如邮件),再逐步添加其他渠道支持
- 用户引导:在首次使用时引导用户设置通知偏好
- 批量更新:减少API调用次数,尽量在一次更新中修改多个设置
- 错误处理:妥善处理网络错误和权限问题
- 本地缓存:在客户端缓存通知设置,提升用户体验
总结
LiveBlocks v2.18.0的通知设置功能为实时协作应用提供了更完善的用户通知管理能力。通过统一的API接口,开发者可以轻松实现跨渠道、多类型的通知设置,同时通过控制面板进行集中管理。这一功能的引入使得LiveBlocks在实时协作领域的功能更加全面,为开发者构建更专业的协作应用提供了有力支持。
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00- DDeepSeek-OCR暂无简介Python00
openPangu-Ultra-MoE-718B-V1.1昇腾原生的开源盘古 Ultra-MoE-718B-V1.1 语言模型Python00
HunyuanWorld-Mirror混元3D世界重建模型,支持多模态先验注入和多任务统一输出Python00
AI内容魔方AI内容专区,汇集全球AI开源项目,集结模块、可组合的内容,致力于分享、交流。03
Spark-Scilit-X1-13BFLYTEK Spark Scilit-X1-13B is based on the latest generation of iFLYTEK Foundation Model, and has been trained on multiple core tasks derived from scientific literature. As a large language model tailored for academic research scenarios, it has shown excellent performance in Paper Assisted Reading, Academic Translation, English Polishing, and Review Generation, aiming to provide efficient and accurate intelligent assistance for researchers, faculty members, and students.Python00
GOT-OCR-2.0-hf阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile013
Spark-Chemistry-X1-13B科大讯飞星火化学-X1-13B (iFLYTEK Spark Chemistry-X1-13B) 是一款专为化学领域优化的大语言模型。它由星火-X1 (Spark-X1) 基础模型微调而来,在化学知识问答、分子性质预测、化学名称转换和科学推理方面展现出强大的能力,同时保持了强大的通用语言理解与生成能力。Python00- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00