Skip to main content

IMainButtonPlugin

View source on GitHub

The plugin that can add items to the main button menu.

Example

The plugin class implements IMainButtonPlugin and registers an "Export to PDF" action in the constructor. DocSpace calls getMainButtonItems to embed the items into the More section of the main button menu inside a room.

import {
type IMainButtonItem,
type IMainButtonPlugin,
Actions,
ToastType,
} from "@onlyoffice/docspace-plugin-sdk";

class Plugin implements IMainButtonPlugin {
mainButtonItems: Map<string, IMainButtonItem> = new Map();

constructor() {
this.addMainButtonItem({
key: "export-pdf",
label: "Export to PDF",
icon: "pdf-icon.svg",
onItemClick: async (id) => {
await exportToPdf(id);
return {
actions: [Actions.showToast],
toastProps: [{
type: ToastType.success,
title: "PDF created"
}]
};
}
});
}

addMainButtonItem = (item: IMainButtonItem): void => {
this.mainButtonItems.set(item.key, item);
};

getMainButtonItems = (): Map<string, IMainButtonItem> => {
return this.mainButtonItems;
};

updateMainButtonItem = (item: IMainButtonItem): void => {
this.mainButtonItems.set(item.key, item);
};
}

Methods

addMainButtonItem()

addMainButtonItem(item: IMainButtonItem): void;

Add a new item to the main button menu.

Parameters

ParameterTypeDescription
itemIMainButtonItemThe main button item to add, containing key, label, icon, and onClick handler

Returns

void

getMainButtonItems()

getMainButtonItems(): Map<string, IMainButtonItem>;

Get all registered main button menu items.

Returns

Map<string, IMainButtonItem>

A Map containing all registered main button items, where keys are item identifiers

updateMainButtonItem()

updateMainButtonItem(item: IMainButtonItem): void;

Update an existing main button menu item.

Parameters

ParameterTypeDescription
itemIMainButtonItemThe main button item to update with new properties

Returns

void

Properties

PropertyTypeDescription
mainButtonItemsMap<string, IMainButtonItem>Stores a collection of elements where the keys are the key parameters from the MainButtonItem objects. A list of main button menu items is generated based on this collection.