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 }