Tabs, actions and settings¶
Meeting tab¶
meetingTabs creates your named tab rather than a generic “Plugins” tab. It receives the selected meeting context and only accesses authorized data.
Right-sidebar action¶
sidebarActions adds a widget opening your UI in a modal. Use it for preparing minutes, action plans or reviewing results.
Plugin settings¶
The gear icon in My plugins opens configurationUrl in a modal. This surface configures preferences rather than running meeting tasks. Context includes surface: "configuration" and meetingId: "".
elo.onContext(async context => {
if (context.surface !== 'configuration') return;
const { user } = await elo.request('identity:read');
const { settings } = await elo.request('settings:read');
renderSettings(user, settings);
});
// When the user explicitly submits:
await elo.request('settings:write', { value: { title: 'Minutes', includeEvidence: true } });
Settings are isolated by user/installation and limited to 16 KB of serialized JSON. Do not store provider passwords here; manage external credentials on your backend.
Expected UX¶
Use responsive layouts, readable contrast and accessible icon labels/tooltips. Prevent duplicate submissions and show button spinners. Success/error toasts should be dismissible and expire after five seconds. Explain unsaved drafts when closing the UI. On meeting changes, cancel requests and discard stale responses.