Here, I am displaying salesforce lightning modal with a progress indicator in footer using lightning component.

In this article, you will be able to open modal on click button and close the modal and add progress indicator in a footer.

Let’s start process step by steps:

Step 1: Create lightning component “ProgressIndicator.cmp” and use below code.

<aura:component >

    <aura:attribute name="showpage1" type="boolean" default="true"/>

    <aura:attribute name="showpage2" type="boolean" default="false"/>

    <aura:attribute name="showpage3" type="boolean" default="false"/>

    <aura:attribute name="openModal" type="boolean" default="false"/>

    <aura:attribute name="currentstep" type="String" default="step1"/>

    <lightning:button variant="brand" label="Open" onclick="{!c.openModal}" />

    <aura:if isTrue="{!v.openModal}">

        <div class="demo-only" style="height: 640px;">

            <section role="dialog" tabindex="-1" aria-labelledby="modal-heading-01" aria-modal="true" aria-describedby="modal-content-id-1" class="slds-modal slds-slide-up-open">

                <div class="slds-modal__container">

                    <header class="slds-modal__header">

                        <button class="slds-button slds-button_icon slds-modal__close slds-button_icon-inverse" title="Close" onclick="{!c.hideModal}">

                            <lightning:icon iconName="utility:close" size="small" alternativeText="Close"/>

                        </button>

                        <h2 id="modal-heading-01" class="slds-text-heading_medium slds-hyphenate">Modal Header</h2>

                    </header>

                    <div class="slds-modal__content slds-p-around_medium" id="modal-content-id-1">

                        <aura:if isTrue="{!v.showpage1}">

                            <p>Step 1</p>

                        </aura:if>

                        <aura:if isTrue="{!v.showpage2}">

                            <p>Step 2</p>

                        </aura:if>

                        <aura:if isTrue="{!v.showpage3}">

                            <p>Step 3</p>

                        </aura:if>

                    </div>

                    <footer class="slds-modal__footer slds-modal__footer_directional">

                        <lightning:progressIndicator currentStep="{!v.currentstep}">

                            <lightning:progressStep label="Step 1" value="step1" onclick="{!c.page1}"/>

                            <lightning:progressStep label="Step 2" value="step2" onclick="{!c.page2}"/>

                            <lightning:progressStep label="Step 3" value="step3" onclick="{!c.page3}"/>

                        </lightning:progressIndicator>

                    </footer>

                </div>

            </section>

            <div class="slds-backdrop slds-backdrop_open"></div>

        </div>

    </aura:if>

</aura:component>

Step 2: Create lightning component controller “ProgressIndicatorController.js” and use this code.

({

     openModal : function(component, event, helper) { 

        component.set("v.openModal",true); 

    },

    page1 : function(component, event, helper) { 

        component.set("v.showpage1",true);

        component.set("v.showpage2",false);

        component.set("v.showpage3",false);

        component.set("v.currentstep","step1");

       

            },

    page2 : function(component, event, helper) {

        component.set("v.showpage2",true);

        component.set("v.showpage1",false);

        component.set("v.showpage3",false);

        component.set("v.currentstep","step2");

            },

    page3 : function(component, event, helper) {

        component.set("v.currentstep","step3");

            component.set("v.showpage3",true);

        component.set("v.showpage2",false);

         component.set("v.showpage1",false);

            },

     hideModal: function(component, event, helper) {

        component.set("v.openModal",false);

    }

})

Step 3: Create lighting app for preview the components.

<aura:application extends="force:slds" >

    <c:ProgressIndicator/>

</aura:application>

You can check – Salesforce consulting Services – Girikon
Salesforce implementation partner & Services

About Author
Arun Garg
Arun Garg
Share this post on: