章节¶
活动流中的每个部分都显示来自相应部分提要的数据,这些数据以标准化的 Section
UI 组件显示。每个部分提要负责侦听事件并更新部分选项,例如标题、图标和行(部分要显示的卡片)。
The Section
UI 组件显示部分提要提供的行。如果行不可用,则显示一个空状态,其中包含一个图标和一条消息。可选地,该部分可能有一个信息选项菜单,当用户将鼠标悬停在信息图标上时显示。
加载时,SectionsManager
和 SectionsFeed
在 SectionsManager.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 |
对象 |
配置要在首选项窗格中显示的部分首选项。具有属性 titleString 和 descString。 |
emptyState |
对象 |
配置该部分的空状态。具有属性 message 和 icon。 |
部分提要¶
每个部分提要应由 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)
来更新部分选项。options
的 rows
数组属性存储要显示的站点的卡片。每个卡片对象可能具有以下属性
{
type, // One of the types in Card/types.js, e.g. "Trending"
title, // Title string
description, // Description string
image, // Image url
url // Site url
}