Browse API 1 documentation
grove.memberActions.register()
Replace native member-menu actions and their selected state.
Replace native member-menu actions and their selected state.
Signature
grove.memberActions.register(actions: {
id: string; label: string; selectedLabel?: string
selectedMemberKeys?: string[]; selectedIcon?: string
}[]): void
Availability
Native member menus expose contributions from server-scoped runtimes with ui.member-actions. A server Root or server tab can contribute; application/composer/settings contexts cannot.
Parameters
| Parameter | Required | Description |
|---|---|---|
actions |
Yes | Complete replacement list; [] clears it. |
id |
Yes | Trimmed/lowercased nonempty letters, numbers, hyphen, underscore, or dot. |
label |
Yes | Nonempty menu label, collapsed to one line and capped at 80 characters. |
selectedLabel |
No | Alternate label for selected members, same limit; absent/empty keeps label. |
selectedMemberKeys |
No | Exact canonical member keys from Mango events/snapshots. Default []; up to 4,096 unique nonempty keys of at most 128 UTF-8 bytes. |
selectedIcon |
No | SF Symbol for selected members, capped at 64 characters. |
Return value
Returns undefined; no accepted-list result.
Behavior and errors
Up to eight valid unique actions are retained; first duplicate ID wins. Mango inspects at most 32 action candidates and 16,384 selected-key candidates per action. Selected keys are compared as supplied, not inferred from nicknames. The same member key can appear in several channels. Registration does not invoke an action: an explicit native click emits memberAction with host-owned context.
Example
grove.on('memberAction', event => {
if (event.action !== 'mark') return
grove.memberActions.register([{
id: 'mark', label: 'Mark member', selectedLabel: 'Unmark member',
selectedMemberKeys: [event.memberKey], selectedIcon: 'star'
}])
})
grove.memberActions.register([{ id: 'mark', label: 'Mark member' }])
See Event reference.