github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/ui/app/components/server-agent-row.js (about) 1 import { inject as service } from '@ember/service'; 2 import { alias } from '@ember/object/computed'; 3 import Component from '@ember/component'; 4 import { computed } from '@ember/object'; 5 import { lazyClick } from '../helpers/lazy-click'; 6 import { classNames, classNameBindings, tagName } from '@ember-decorators/component'; 7 import classic from 'ember-classic-decorator'; 8 9 @classic 10 @tagName('tr') 11 @classNames('server-agent-row', 'is-interactive') 12 @classNameBindings('isActive:is-active') 13 export default class ServerAgentRow extends Component { 14 // TODO Switch back to the router service once the service behaves more like Route 15 // https://github.com/emberjs/ember.js/issues/15801 16 // router: inject.service('router'), 17 // eslint-disable-next-line ember/no-private-routing-service 18 @service('-routing') _router; 19 @alias('_router.router') router; 20 21 agent = null; 22 23 @computed('agent', 'router.currentURL') 24 get isActive() { 25 // TODO Switch back to the router service once the service behaves more like Route 26 // https://github.com/emberjs/ember.js/issues/15801 27 // const targetURL = this.get('router').urlFor('servers.server', this.get('agent')); 28 // const currentURL = `${this.get('router.rootURL').slice(0, -1)}${this.get('router.currentURL')}`; 29 30 const router = this.router; 31 const targetURL = router.generate('servers.server', this.agent); 32 const currentURL = `${router.get('rootURL').slice(0, -1)}${ 33 router.get('currentURL').split('?')[0] 34 }`; 35 36 // Account for potential URI encoding 37 return currentURL.replace(/%40/g, '@') === targetURL.replace(/%40/g, '@'); 38 } 39 40 click() { 41 const transition = () => this.router.transitionTo('servers.server', this.agent); 42 lazyClick([transition, event]); 43 } 44 }