1import { LightningElement } from "lwc";
2import { createRouter } from "lwr/router";
3import { ROUTE_DEFINITIONS } from "./routeDefinitions";
4
5export default class MyApp extends LightningElement {
6 router = createRouter({ routes: ROUTE_DEFINITIONS });
7 approvedCategories = ["apps", "entrees", "sides", "desserts"];
8
9 handleNavigation(e: CustomEvent): void {
10 console.log("navigate() called with page reference:", e.detail);
11 }
12
13 preNavigate(e: CustomEvent): void {
14 const {
15 next: {
16 route: { pageReference },
17 },
18 } = e.detail;
19 const {
20 attributes: { cat },
21 } = pageReference;
22 console.log("navigation event incoming with page reference:", pageReference);
23 if (!this.approvedCategories.includes(cat)) {
24 // REJECT unapproved recipe categories
25 e.preventDefault();
26 }
27 }
28
29 postNavigate(e: CustomEvent): void {
30 const {
31 route: { pageReference },
32 } = e.detail;
33 console.log("navigated to page reference:", pageReference);
34 }
35
36 errorNavigate(e: CustomEvent): void {
37 const { code, message } = e.detail;
38 console.error(`navigation error -> ${code}: ${message}`);
39 }
40}