0

I have a LWC component on case page with button called Search, which does a callout and calls another LWC through Aura, that is opened as new tab in the same window, like this:

enter image description here

As you can see, within the main tab 00001713, we can see 2 new tabs: 00001713 and Edit Contact.

The problems are:

  1. The first time I click Search it changes the aura component's tab name to Edit Contact. But if click the LWC on case page again I see Loading....
  2. The second time I click Search without refreshing, it changes the 00001713 tabs's name to Edit Contact. And because it the second time, problem 1 remains.

How can resolve these 2 problems?

LWC embedded on case page:

handleNavigate() {
      this[NavigationMixin.Navigate]({
          type: "standard__component",
          attributes: {
              componentName: "c__PracticesResultsContainer"
          }
          ,
          state: {
              c__practices: JSON.stringify(this.practices),
              c__startPage: this.startPage,
              c__endPage: this.endPage,
              c__totalrecords: this.totalrecords,
              c__totalPages: this.totalPages,
              c__codeIndicated: this.practiceCodeIndicated,
              c__code: this.codeIndicated
          }
      });
  }

Aura:

<aura:component implements="flexipage:availableForAllPageTypes,lightning:isUrlAddressable" access="global">
    <aura:attribute name="practices" type="String"/>
    <aura:attribute name="codeIndicated" type="String"/>
    <aura:attribute name="code" type="String"/>
    <aura:attribute name="startPage" type="Integer"/>
    <aura:attribute name="endPage" type="Integer"/>
    <aura:attribute name="totalrecords" type="Integer"/>
    <aura:attribute name="totalPages" type="Integer"/>
    <aura:handler name="init" value="{!this}" action="{!c.init}"/>
    <lightning:workspaceAPI aura:id="workspace"/>

    <div class="slds-card">
        <c:practiceResult practicesString="{!v.practices}" practiceCodeIndicated="{!v.codeIndicated}" 
        startPage="{!v.startPage}" endPage="{!v.endPage}" totalrecords="{!v.totalrecords}" totalpages="{!v.totalPages}"
         code="{!v.code}"
        />
    </div>
</aura:component>

Aura component controller:

({
    init: function(cmp, evt, helper) {
        var workspaceAPI = cmp.find("workspace");
        workspaceAPI.getFocusedTabInfo().then(function(response) {
            var focusedTabId = response.tabId;
            console.log('focusedTabId ' + focusedTabId);
            
            workspaceAPI.setTabLabel({
                tabId: focusedTabId,
                label: "Edit Contact" //set label you want to set
            });
            
        });

        var myPageRef = cmp.get("v.pageReference");
        //var PaginationList = myPageRef.state.c__PaginationList;
        var practices = myPageRef.state.c__practices;
        var codeIndicated = myPageRef.state.c__codeIndicated;
        var startPage = myPageRef.state.c__startPage;
        var endPage = myPageRef.state.c__endPage;
        var totalrecords = myPageRef.state.c__totalrecords;
        var totalPages = myPageRef.state.c__totalPages;
        var code = myPageRef.state.c__code;

        
        cmp.set("v.practices", practices);
        cmp.set("v.codeIndicated", codeIndicated);
        cmp.set("v.startPage", startPage);
        cmp.set("v.endPage", endPage);
        cmp.set("v.totalrecords", totalrecords);
        cmp.set("v.totalPages", totalPages);
        cmp.set("v.code", code);
    }
})
0

I need to set to subtab instead of tab

workspaceAPI.getFocusedTabInfo().then(function(response) {}).then(function(subtabId) {
            // the subtab has been created, use the Id to set the label
            workspaceAPI.setTabLabel({
                tabId: subtabId,
                label: $A.get("$Label.c.SchoolConsultation_TitleShort")
            });

            workspaceAPI.focusTab({tabId : subtabId});                                
        }).catch(function(error) {
            console.log("error in container");
            console.log(error);
        });

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.