github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/components/fs/breadcrumbs.js (about)

     1  import Component from '@ember/component';
     2  import { computed } from '@ember/object';
     3  import { isEmpty } from '@ember/utils';
     4  import {
     5    classNames,
     6    tagName,
     7    attributeBindings,
     8  } from '@ember-decorators/component';
     9  import classic from 'ember-classic-decorator';
    10  
    11  @classic
    12  @tagName('nav')
    13  @classNames('breadcrumb')
    14  @attributeBindings('data-test-fs-breadcrumbs')
    15  export default class Breadcrumbs extends Component {
    16    'data-test-fs-breadcrumbs' = true;
    17  
    18    allocation = null;
    19    taskState = null;
    20    path = null;
    21  
    22    @computed('path')
    23    get breadcrumbs() {
    24      const breadcrumbs = this.path
    25        .split('/')
    26        .reject(isEmpty)
    27        .reduce((breadcrumbs, pathSegment, index) => {
    28          let breadcrumbPath;
    29  
    30          if (index > 0) {
    31            const lastBreadcrumb = breadcrumbs[index - 1];
    32            breadcrumbPath = `${lastBreadcrumb.path}/${pathSegment}`;
    33          } else {
    34            breadcrumbPath = pathSegment;
    35          }
    36  
    37          breadcrumbs.push({
    38            name: pathSegment,
    39            path: breadcrumbPath,
    40          });
    41  
    42          return breadcrumbs;
    43        }, []);
    44  
    45      if (breadcrumbs.length) {
    46        breadcrumbs[breadcrumbs.length - 1].isLast = true;
    47      }
    48  
    49      return breadcrumbs;
    50    }
    51  }