Skip to main content

IContextMenuPlugin

View source on GitHub

The plugin that is embedded in the context menu of files, folders, rooms, images, video (audio).

Example​

The plugin class implements IContextMenuPlugin and registers a "Share Document" item in the constructor. DocSpace calls getContextMenuItems to embed the items into the context menu.

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

class Plugin implements IContextMenuPlugin {
contextMenuItems: Map<string, IContextMenuItem> = new Map();

constructor() {
this.addContextMenuItem({
key: "doc-share",
label: "Share Document",
icon: "share-icon.svg",
onItemClick: async (id) => {
await initiateDocumentSharing(id);
return {
actions: [Actions.showToast],
toastProps: [{
type: ToastType.success,
title: "Share dialog opened"
}]
};
}
});
}

addContextMenuItem = (item: IContextMenuItem): void => {
this.contextMenuItems.set(item.key, item);
};

getContextMenuItems = (): Map<string, IContextMenuItem> => {
return this.contextMenuItems;
};

getContextMenuItemsKeys = (): string[] => {
return Array.from(this.contextMenuItems.keys());
};

updateContextMenuItem = (item: IContextMenuItem): void => {
this.contextMenuItems.set(item.key, item);
};
}

Methods​

addContextMenuItem()​

addContextMenuItem(item: IContextMenuItem): void;

Add a new context menu item.

Parameters​

ParameterTypeDescription
itemIContextMenuItemThe context menu item to add, containing key, label, icon, and onClick handler

Returns​

void

getContextMenuItems()​

getContextMenuItems(): Map<string, IContextMenuItem>;

Get all the context menu items.

Returns​

Map<string, IContextMenuItem>

A Map containing all registered context menu items, where keys are item identifiers

getContextMenuItemsKeys()​

getContextMenuItemsKeys(): string[];

Get all the keys of the context menu items.

Returns​

string[]

An array containing all registered context menu item keys

updateContextMenuItem()​

updateContextMenuItem(item: IContextMenuItem): void;

Update an existing context menu item.

Parameters​

ParameterTypeDescription
itemIContextMenuItemThe context menu item to update with new properties

Returns​

void

Properties​

PropertyTypeDescription
contextMenuItemsMap<string, IContextMenuItem>Stores a collection of elements where the keys are the key parameters from the ContextMenuItem objects. A list for embedding into the context menu is generated based on this collection.