Skip to content

Commit

Permalink
[BUGFIX beta] Allow boolean values for current-when
Browse files Browse the repository at this point in the history
As the docs say, `A link will be active if current-when is true`.
Looks like this might have been broken since 1.13 and emberjs#12344
did not seem to actually fix this particular bug.

Related issues:

- emberjs#12512
- emberjs#12630 (fix was not merged)
- emberjs#12296
  • Loading branch information
whatthewhat committed Jun 26, 2017
1 parent 2d9e3aa commit d0f320a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
6 changes: 5 additions & 1 deletion packages/ember-glimmer/lib/components/link-to.js
Original file line number Diff line number Diff line change
Expand Up @@ -549,8 +549,12 @@ const LinkComponent = EmberComponent.extend({
let routing = get(this, '_routing');
let models = get(this, 'models');
let resolvedQueryParams = get(this, 'resolvedQueryParams');

let currentWhen = get(this, 'current-when');

if (typeof currentWhen === 'boolean') {
return currentWhen ? get(this, 'activeClass') : false;
}

let isCurrentWhenSpecified = !!currentWhen;
currentWhen = currentWhen || get(this, 'qualifiedRouteName');
currentWhen = currentWhen.split(' ');
Expand Down
16 changes: 16 additions & 0 deletions packages/ember/tests/helpers/link_to_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,22 @@ moduleFor('The {{link-to}} helper - nested routes and link-to arguments', class
assert.equal(this.$('#link3.active').length, 0, 'The link is not active since current-when does not contain the active route');
}

['@test The {{link-to}} helper supports boolean values for current-when'](assert) {
this.router.map(function(match) {
this.route('index', { path: '/' }, function() {
this.route('about');
});
this.route('item');
});

this.addTemplate('index', `<h3>Home</h3>{{outlet}}`);
this.addTemplate('index.about', `{{#link-to 'item' id='other-link' current-when=true}}ITEM{{/link-to}}`);

this.visit('/about');

assert.equal(this.$('#other-link').length, 1, 'The link is active since current-when is true');
}

['@test The {{link-to}} helper defaults to bubbling'](assert) {
this.addTemplate('about', `
<div {{action 'hide'}}>
Expand Down

0 comments on commit d0f320a

Please sign in to comment.