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