Browse API 1 documentation
GroveAPI 1preview

grove.memberActions.register()

Replace native member-menu actions and their selected state.

Mango 3.1+View Markdown

Replace native member-menu actions and their selected state.

Signature

ts
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

js
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.