ngAfterViewChecked()

in app/src/app/app.component.ts [27:76]


  ngAfterViewChecked() {
    this.route.events.subscribe((data) => {
       if (data instanceof RoutesRecognized) {
        const params = data.state.root.firstChild.params;
        const breadcrumbs: Breadcrumb[] = [];

        if (params.server) {
          const server = params.server;
          breadcrumbs.push({
            name:   server,
            href:   `servers/${server}/databases`,
            active: false
          });

          if (params.database) {
            const database = params.database;
            breadcrumbs.push({
              name:   database,
              href:   `servers/${server}/databases/${database}/collections`,
              active: false
            });

            if (params.collection) {
              const collection = params.collection;
              breadcrumbs.push({
                name:   collection,
                href:   `servers/${server}/databases/${database}/collections/${collection}`,
                active: false
              });

              if (params.document) {
                const document = params.document;
                breadcrumbs.push({
                  name:   document,
                  active: false
                });
              }
            }
          }
        }

        if (breadcrumbs.length > 0) {
          breadcrumbs[breadcrumbs.length - 1].href = undefined;
          breadcrumbs[breadcrumbs.length - 1].active = true;
        }

        this.breadcrumbs = breadcrumbs;
       }
     });
  }