Untitled diff

Created Diff never expires
44 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
62 lines
29 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
46 lines
import { inject as service } from '@ember/service';
import { inject as service } from "@ember-decorators/service";
import Component from '@ember/component';
import Component from '@ember/component';
import { computed } from '@ember/object';
import { action, wrapComputed, computed } from "@ember/object";
import { isEmpty } from '@ember/utils';
import { isEmpty } from '@ember/utils';
import { task } from 'ember-concurrency';
import { task } from 'ember-concurrency';
import { filterByFilePath } from '../utils';
import { filterByFilePath } from '../utils';


export default Component.extend({
export default class AddonSourceUsagesComponent extends Component {
visibleUsageCount: 25,
visibleUsageCount = 25;

showUsages = false;
showUsages: false,
usages = null;

regex = false;
usages: null,
fileFilter = null;

regex: false,

fileFilter: null,


codeSearch: service(),
@service codeSearch;


visibleUsages: computed('visibleUsageCount', 'usages', function() {
@computed('visibleUsageCount', 'usages')
get visibleUsages() {
return this.usages.slice(0, this.visibleUsageCount);
return this.usages.slice(0, this.visibleUsageCount);
}),
}


moreUsages: computed('visibleUsageCount', 'usages', function() {
@computed('visibleUsageCount', 'usages')
get moreUsages() {
return this.visibleUsageCount < this.usages.length;
return this.visibleUsageCount < this.usages.length;
}),
}


fetchUsages: task(function* () {
@(task(function* () {
let usages = yield this.codeSearch.usages.perform(this.addon.id, this.query, this.regex);
let usages = yield this.codeSearch.usages.perform(this.addon.id, this.query, this.regex);
this.set('usages', filterByFilePath(usages, this.fileFilter));
this.set('usages', filterByFilePath(usages, this.fileFilter));
}).drop(),
}).drop())

fetchUsages;
actions: {
toggleUsages() {
this.toggleProperty('showUsages');
if (this.showUsages && this.usages === null) {
this.fetchUsages.perform();
}
},


viewMore() {
@action
let newUsageCount = this.visibleUsageCount + 25;
toggleUsages() {
this.set('visibleUsageCount', newUsageCount);
this.toggleProperty('showUsages');
if (this.showUsages && this.usages === null) {
this.fetchUsages.perform();
}
}
}
}
});


function filterByFilePath(usages, filterTerm) {
@action
if (isEmpty(filterTerm)) {
viewMore() {
return usages;
let newUsageCount = this.visibleUsageCount + 25;
}
this.set('visibleUsageCount', newUsageCount);
let filterRegex;
try {
filterRegex = new RegExp(filterTerm);
} catch(e) {
return [];
}
}
return usages.filter((usage) => {
return usage.filename.match(filterRegex);
});
}
}