Newer Version Available

This content describes an older version of this product. View Latest

getAllTabInfo() for Lightning Experience

Returns information about all open tabs. This method works only in Lightning console apps.

Arguments

None.

LWC Sample Code

This component has a function that returns the information on all tabs.

1import { LightningElement, wire } from 'lwc';
2import { IsConsoleNavigation, getAllTabInfo } from 'lightning/platformWorkspaceApi';
3
4export class GetAllTabInfoExample extends LightningElement {
5    @wire(IsConsoleNavigation) isConsoleNavigation;
6
7    async handleOpen() {
8        if (!this.isConsoleNavigation) {
9            return;
10        }
11        try {
12            const tabInfo = await getAllTabInfo();
13            //do something with tabInfo
14        } catch (error) {
15            console.log(error);
16        }
17    }
18}

For another example that uses getAllTabInfo(), see focusTab().

To make your component available for use in a Lightning console app, specify the lightning__AppPage target in the component’s configuration file.

Aura Components Sample Code

This component has a button that, when pressed, gets the info of all open tabs and prints the resulting tabInfo object.

Component code:

1<aura:component implements="flexipage:availableForAllPageTypes" access="global" >
2    <lightning:workspaceAPI aura:id="workspace" />
3    <lightning:button label="Get All Tab Info" onclick="{! c.handleGetAllTabInfo }" />
4</aura:component>

Controller code:

1({
2    handleGetAllTabInfo : function(component, event, helper) {
3        var workspaceAPI = component.find("workspace");
4        workspaceAPI.getAllTabInfo().then(function(response) {
5            console.log(response);
6       })
7        .catch(function(error) {
8            console.log(error);
9        });
10    }
11})

Response

This method returns a promise that, upon success, resolves to an array of tabInfo objects. A tabInfo object is a JSON array of information about a workspace tab, with nested arrays of information on each subtab. This is the structure of a tabInfo object.
1{
2     tabId: string,
3     url: string (URL),
4     pinned: boolean,
5     closeable: boolean,
6     title: string,
7     icon: string (SLDS iconKey),
8     iconAlt: string,
9     customTitle: string (optional),
10     customIcon: string (optional),
11     customIconAlt: string (optional),
12     highlighted: boolean,
13     pageReference: object,
14     isSubtab: boolean,
15     parentTabId: string,
16     subtabs: [
17         {
18             tabId: string,
19             url: string (URL),
20             pinned: boolean,
21             closeable: boolean,
22             title: string,
23             icon: string (SLDS iconKey),
24             iconAlt: string,
25             customTitle: string (optional),
26             customIcon: string (optional),
27             customIconAlt: string (optional),
28             highlighted: boolean,
29             pageReference: object,
30             isSubtab: boolean,
31             parentTabId: string,
32             focused: boolean,
33             recordId: string,
34          },
35           ... 
36     ],
37     focused: boolean,
38     recordId: string
39}