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.
import { LightningElement, wire } from 'lwc';
import { IsConsoleNavigation, getAllTabInfo } from 'lightning/platformWorkspaceApi';
export class GetAllTabInfoExample extends LightningElement {
@wire(IsConsoleNavigation) isConsoleNavigation;
async handleOpen() {
if (!this.isConsoleNavigation) {
return;
}
try {
const tabInfo = await getAllTabInfo();
//do something with tabInfo
} catch (error) {
console.log(error);
}
}
}
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:
<aura:component implements="flexipage:availableForAllPageTypes" access="global" >
<lightning:workspaceAPI aura:id="workspace" />
<lightning:button label="Get All Tab Info" onclick="{! c.handleGetAllTabInfo }" />
</aura:component>
Controller code:
({
handleGetAllTabInfo : function(component, event, helper) {
var workspaceAPI = component.find("workspace");
workspaceAPI.getAllTabInfo().then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
});
}
})
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.
{
tabId: string,
url: string (URL),
pinned: boolean,
closeable: boolean,
title: string,
icon: string (SLDS iconKey),
iconAlt: string,
customTitle: string (optional),
customIcon: string (optional),
customIconAlt: string (optional),
highlighted: boolean,
pageReference: object,
isSubtab: boolean,
parentTabId: string,
subtabs: [
{
tabId: string,
url: string (URL),
pinned: boolean,
closeable: boolean,
title: string,
icon: string (SLDS iconKey),
iconAlt: string,
customTitle: string (optional),
customIcon: string (optional),
customIconAlt: string (optional),
highlighted: boolean,
pageReference: object,
isSubtab: boolean,
parentTabId: string,
focused: boolean,
recordId: string,
},
...
],
focused: boolean,
recordId: string
}