Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
disableTabClose() for Lightning Experience
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. When the openTab() method resolves successfully, it returns the tabInfo object. The const { tabId } syntax destructures the tabInfo object and binds the tabInfo.tabId value on the tabId variable. disableTabClose() uses this tabId value to prevent the tab from closing.
1import { LightningElement } from 'lwc';
2import { openTab, disableTabClose, IsConsoleNavigation } from 'lightning/platformWorkspaceApi';
3
4export default class DisableTabCloseExample extends LightningElement {
5
6 async handleOpenAndDisable() {
7 if (!this.isConsoleNavigation) {
8 return;
9 }
10 try {
11 const { tabId } = await openTab({
12 pageReference: {
13 "type": "standard__objectPage",
14 "attributes": {
15 "objectApiName":"Account",
16 "actionName":"home"
17 },
18 },
19 });
20 await disableTabClose(tabId, true);
21 } catch (error) {
22 // handle error
23 }
24 }
25}For another example that uses disableTabClose(), see the workspaceAPIDisableTabClose component in the lwc-recipes repo.
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, 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
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}