章节

活动流中的每个部分都显示来自相应部分提要的数据,这些数据以标准化的 Section UI 组件显示。每个部分提要负责侦听事件并更新部分选项,例如标题、图标和行(部分要显示的卡片)。

The Section UI 组件显示部分提要提供的行。如果行不可用,则显示一个空状态,其中包含一个图标和一条消息。可选地,该部分可能有一个信息选项菜单,当用户将鼠标悬停在信息图标上时显示。

加载时,SectionsManagerSectionsFeedSectionsManager.sys.mjs 中将 BUILT_IN_SECTIONS 映射中配置的部分添加到状态。这些部分最初是禁用的,因此不可见。该部分的提要可以使用 SectionsManager 提供的方法来启用其部分并更新其属性。

BUILT_IN_SECTIONS 中的部分配置由部分提要的 pref 名称作为键的生成器函数组成。生成器函数以 options 参数作为唯一参数,该参数传递存储为 pref {feed_pref_name}.options 中的序列化 JSON 的对象,如果不存在,则传递空对象。生成器返回一个部分配置对象,该对象可能具有以下属性

属性

类型

描述

id

字符串

非可选唯一 ID。

title

本地化对象

具有属性 id(字符串本地化 ID),并且可选地具有 values 对象以填充占位符。

icon

字符串

图标 ID。新的图标应添加到 icons.scss 中。

maxRows

整数

要显示的卡片行数的最大值。应大于或等于 1。

contextMenuOptions

字符串数组

要在卡片上下文菜单中提供的菜单选项。

shouldHidePref

布尔值

如果为真,则首选项窗格中不会显示该部分首选项。

pref

对象

配置要在首选项窗格中显示的部分首选项。具有属性 titleStringdescString

emptyState

对象

配置该部分的空状态。具有属性 messageicon

部分提要

每个部分提要应由 pref feeds.section.{section_id} 控制。

启用部分

部分提要必须侦听事件 INIT(在活动流初始化时分派)和 FEED_INIT(在提要重新启用后分派,已关闭,提要 ID 作为 data)。在这些事件中,它必须调用 SectionsManager.enableSection(id)。应注意,这仅在 SectionsManager 也已初始化后才发生;提要可以使用方法 SectionsManager.onceInitialized()

禁用部分

部分提要必须具有 uninit 方法。当通过关闭该部分的 pref 来禁用部分提要时,会调用此方法。在 uninit 中,提要必须调用 SectionsManager.disableSection(id)。这将从每个现有的活动流页面中删除该部分的 UI 组件。

更新部分行

部分提要可以调用 SectionsManager.updateSection(id, options) 来更新部分选项。optionsrows 数组属性存储要显示的站点的卡片。每个卡片对象可能具有以下属性

{
  type, // One of the types in Card/types.js, e.g. "Trending"
  title, // Title string
  description, // Description string
  image, // Image url
  url // Site url
}