Configuring Menu Commands
quip.apps.MenuCommand
This is the interface used for configuring menu commands. A command can show up in the interface in a few places:
- In the document, either as a button on the toolbar or as a menu option inside a toolbar item
- On mobile devices in the mobile toolbar
- In a context menu
id
required
string
Must be unique. Can either be an arbitrary unique string or one of quip.apps.DocumentMenuCommands
.
label
optional
string
The user-facing label of this menu item.
sublabel
optional
string
A user-facing sublabel for this item. A sublabel is right-aligned and rendered in gray text.
handler
optional
Function(id: string, meta: ContextMenuMeta) => boolean
This handler will be called when this command is selected. Meta is used for sending contextual metadata when invoked via a context menu.
This should only be defined for commands that are neither defined with isHeader
and contain no subCommands
.
isHeader
optional
boolean=false
If this is set to true, this item is a header and is not interactive - just used for labeling sections in a menu.
subCommands
optional
string[]
Menu Commands may be nested, allowing "drill down" menu selection. If this menu item should have subCommands
, this should be a set to a list of the child commands' IDs
actionId
optional
quip.apps.DocumentMenuActions
Quip provides some global actions, generally for actions that are managed by Quip and present external UI. See quip.apps.DocumentMenuActions for a list of possible values.
actionParams
optional
{[key: string]: any}
When invoking an actionId
, you may need to pass parameters depending on the action you are running. This is the interface by which you can pass arguments. See quip.apps.DocumentMenuActions for more details and available parameters.
actionStarted
optional
Function(...args: any[]) => any
When invoking an actionId
, it the action may need to callback when the action is started. See quip.apps.DocumentMenuActions for information on when this would be invoked.
quip.apps.DocumentMenuCommands
These constants are references to the default menus shown for the app as well as utilities like the menu separator, or built-in commands that are supported by the host.
MENU_MAIN: "DocumentMenu-main"
Default first toolbar button shown for the app
SEPARATOR: "DocumentCommand-separator"
Allows the developer to include a separator either within a submenu or to separate toolbar button groups
COPY_ANCHOR_LINK: "DocumentCommand-copyAnchorLink"
Default command supported by the host that will copy an anchor link to this app instance to the user's clipboard
DELETE_APP: "DocumentCommand-deleteApp"
Default command supported by the host that will delete this instance of the app
quip.apps.DocumentMenuActions
These constants are for special actions that can be hooked up to MenuCommands.
SHOW_FILE_PICKER: 1
Shows a file picker UI to the user.
SHOW_FILE_PICKER
actionParams
mimeTypes
optional
string[]
An array of valid mime types to filter available files by.
requestedThumbnailWidths
optional
number[]
An array of thumbnail widths to generate.
SHOW_FILE_PICKER
actionStarted
Parameters
Function(fileList: FileList, dataTransfers: ArrayBuffer[]) => void
fileList
required
FileList
A list of selected files.
dataTransfers
required
ArrayBuffer[]
The data transfers for the selected files.