Skip to content

Commit 940f109

Browse files
committed
Inline filter-params mixin into its only user
1 parent db828db commit 940f109

File tree

2 files changed

+39
-50
lines changed

2 files changed

+39
-50
lines changed

app/controllers/project-version/classes/class.js

+39-4
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,58 @@
11
/* eslint-disable ember/no-computed-properties-in-native-classes, ember/classic-decorator-no-classic-methods */
2-
import { action, computed } from '@ember/object';
2+
import { action, computed, set, get } from '@ember/object';
33
import { inject as service } from '@ember/service';
44
import Controller from '@ember/controller';
5+
import { A } from '@ember/array';
6+
import { capitalize } from '@ember/string';
7+
import { isEmpty } from '@ember/utils';
58
import ParentNameMixin from 'ember-api-docs/mixins/parent-name';
6-
import FilterParams from 'ember-api-docs/mixins/filter-params';
9+
10+
const filterTypes = ['inherited', 'protected', 'private', 'deprecated'];
11+
const DEFAULT_FILTER = 'inherited';
712

813
export default class ClassController extends Controller.extend(
9-
ParentNameMixin,
10-
FilterParams
14+
ParentNameMixin
1115
) {
1216
@service
1317
filterData;
1418

19+
queryParams = [{ visibilityFilter: 'show' }];
20+
1521
@service
1622
legacyModuleMappings;
1723

1824
@service
1925
metaStore;
2026

27+
@computed(
28+
'filterData.{showInherited,showProtected,showPrivate,showDeprecated}'
29+
)
30+
get visibilityFilter() {
31+
let appliedFilters = filterTypes
32+
.reduce((filters, filter) => {
33+
let filterValue = get(this, `filterData.show${capitalize(filter)}`)
34+
? filter
35+
: null;
36+
filters.push(filterValue);
37+
return filters;
38+
}, A())
39+
.compact();
40+
41+
if (isEmpty(appliedFilters)) {
42+
return DEFAULT_FILTER;
43+
} else {
44+
return appliedFilters.join(',');
45+
}
46+
}
47+
48+
set visibilityFilter(value = '') {
49+
let filters = A(value.split(','));
50+
filterTypes.forEach((filter) => {
51+
let enabled = filters.indexOf(filter) > -1;
52+
set(this, `filterData.show${capitalize(filter)}`, enabled);
53+
});
54+
}
55+
2156
@computed('legacyModuleMappings.mappings', 'model.{module,name}')
2257
get hasImportExample() {
2358
return this.legacyModuleMappings.hasClassMapping(

app/mixins/filter-params.js

-46
This file was deleted.

0 commit comments

Comments
 (0)