Newer Version Available
disableTabClose() for Lightning Experience
Prevents a workspace tab or subtab from closing. This method removes the close button
from a tab or subtab, and disables the keyboard shortcuts that close tabs and subtabs. This method works only in
Lightning console apps.
Arguments
The method provides the same argument for both Aura Components and Lightning Web Components (LWC).
| Name | Type | Description |
|---|---|---|
| tabId | string | The ID of the workspace tab or subtab to disable tab close for. |
| disabled | boolean | Specifies whether to disable tab close. |
LWC Sample Code
This component has a function that opens a tab using a page reference and then prevents it from being closed.
1import { LightningElement } from 'lwc';
2import { openTab, disableTabClose } from 'lightning/platformWorkspaceApi';
3
4export default class MyComponent extends LightningElement {
5
6 focusNewTab(event) {
7 openTab({
8 url: '#/sObject/001R0000003HgssIAC/view',
9 label: 'Global Media'
10 }).then((tabId) => {
11 disableTabClose(tabId, true);
12 }).catch((error) => {
13 console.log(error);
14 });
15 }
16}Aura Components Sample Code
This component has a button that, when pressed, disables the ability to close the currently focused tab.
Component code:
1<aura:component implements="flexipage:availableForAllPageTypes" access="global">
2 <lightning:workspaceAPI aura:id="workspace" />
3 <lightning:button label="Disable Close Focused Tab" onclick="{! c.disableCloseFocusedTab }" />
4</aura:component>Controller code:
1({
2 disableCloseFocusedTab : function(component, event, helper) {
3 var workspaceAPI = component.find("workspace");
4 workspaceAPI.getFocusedTabInfo().then(function(response) {
5 var focusedTabId = response.tabId;
6 workspaceAPI.disableTabClose({
7 tabId: focusedTabId,
8 disabled: true
9 })
10 .then(function(tabInfo) {
11 console.log(tabInfo);
12 })
13 .catch(function(error) {
14 console.log(error);
15 });
16 })
17 .catch(function(error) {
18 console.log(error);
19 });
20 }
21})Response
This method returns a promise that, upon success, resolves
to a tabInfo object representing the focused tab.
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}