New file |
| | |
| | | import { LightningElement,wire } from 'lwc'; |
| | | import { CurrentPageReference, NavigationMixin } from 'lightning/navigation'; |
| | | |
| | | const NAVIGATION_ITEMS = [ |
| | | { label: 'Home', pageId: 'home', isCurrentPage: false }, |
| | | { label: 'PageA', pageId: 'pageA', isCurrentPage: false }, |
| | | { label: 'PageB', pageId: 'pageB', isCurrentPage: false }, |
| | | { label: 'PageC', pageId: 'pageC', isCurrentPage: false }, |
| | | ]; |
| | | |
| | | export default class ParentComponentTest extends NavigationMixin(LightningElement) { |
| | | startCounter = 0; |
| | | handleStartChange(event) { |
| | | this.startCounter = parseInt(event.target.value); |
| | | } |
| | | handleMaximizeCounter() { |
| | | this.template.querySelector('c-child-component-test').maximizeCounter(); |
| | | } |
| | | |
| | | //Navigation Start |
| | | currentPageReference; |
| | | selectedPageId; |
| | | newPageId = 'home'; |
| | | navigationItems = NAVIGATION_ITEMS; |
| | | |
| | | get newPageReferenceUrlParams() { |
| | | return { |
| | | c__ids: this.selectedPageId |
| | | }; |
| | | } |
| | | |
| | | get newPageReference() { |
| | | return Object.assign({}, this.currentPageReference, { |
| | | state: Object.assign({}, this.currentPageReference.state, this.newPageReferenceUrlParams) |
| | | }); |
| | | } |
| | | |
| | | navigateToNewPage() { |
| | | this[NavigationMixin.Navigate]( |
| | | this.newPageReference, |
| | | false // if true js history is replaced without pushing a new history entry onto the browser history stack |
| | | ); // if false new js history entry is created. User will be able to click browser back/forward buttons |
| | | } |
| | | |
| | | handleNavigate(event) { |
| | | this.selectedPageId = event.target.name; |
| | | this.navigateToNewPage(); |
| | | } |
| | | |
| | | @wire(CurrentPageReference) |
| | | setCurrentPageReference(currentPageReference) { |
| | | if (currentPageReference) { |
| | | this.currentPageReference = currentPageReference; |
| | | this.setCurrentPageIdBasedOnUrl(); |
| | | } |
| | | } |
| | | |
| | | setCurrentPageIdBasedOnUrl() { |
| | | this.newPageId = this.currentPageReference.state.c__ids; |
| | | } |
| | | ////Navigation End |
| | | } |