Skip to content

Commit 8798ae4

Browse files
grzegorz-bielskiromanowski
authored andcommitted
Add jsdoc type annotations for Filter
1 parent 293f723 commit 8798ae4

File tree

4 files changed

+71
-9
lines changed

4 files changed

+71
-9
lines changed

scala3doc/resources/dotty_res/scripts/common/component.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ class Component {
66
}
77

88
setState(nextState, cb = () => {}) {
9-
const prevState = { ...this.state };
109
if (typeof nextState === "function") {
1110
this.state = {
1211
...this.state,

scala3doc/resources/dotty_res/scripts/components/Filter.js

Lines changed: 66 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,22 @@ const defaultFilterGroup = {
22
FOrdering: { Alphabetical: true },
33
};
44

5+
/**
6+
* @typedef { Object } FilterItem
7+
* @prop { string } selected
8+
* @prop { number } visible
9+
*/
10+
11+
/**
12+
* @typedef { Record<string, FilterItem> } Filters
13+
*/
14+
515
class Filter {
16+
/**
17+
* @param value { string }
18+
* @param filters { Filters }
19+
* @param elementsRefs { Element }
20+
*/
621
constructor(value, filters, elementsRefs, init = false) {
722
this._init = init;
823
this._value = value;
@@ -23,6 +38,10 @@ class Filter {
2338
return this._elementsRefs;
2439
}
2540

41+
/**
42+
* @param key { string }
43+
* @param value { string }
44+
*/
2645
onFilterToggle(key, value) {
2746
return new Filter(
2847
this.value,
@@ -31,6 +50,10 @@ class Filter {
3150
);
3251
}
3352

53+
/**
54+
* @param key { string }
55+
* @param isActive { boolean }
56+
*/
3457
onGroupSelectionChange(key, isActive) {
3558
return new Filter(
3659
this.value,
@@ -39,6 +62,10 @@ class Filter {
3962
);
4063
}
4164

65+
/**
66+
* @param value { string }
67+
* @returns { FilterItem }
68+
*/
4269
onInputValueChange(value) {
4370
return new Filter(
4471
value,
@@ -47,6 +74,11 @@ class Filter {
4774
);
4875
}
4976

77+
/**
78+
* @private
79+
* @param value { string }
80+
* @returns { Filters }
81+
*/
5082
_generateFiltersOnTyping(value) {
5183
return this.elementsRefs
5284
.filter((elRef) => {
@@ -72,6 +104,10 @@ class Filter {
72104
}, this._allFiltersAreHidden());
73105
}
74106

107+
/**
108+
* @private
109+
* @returns { Filters }
110+
*/
75111
_allFiltersAreHidden() {
76112
return Object.entries(this.filters).reduce(
77113
(filters, [key, filterGroup]) => {
@@ -87,6 +123,12 @@ class Filter {
87123
);
88124
}
89125

126+
/**
127+
* @private
128+
* @param key { string }
129+
* @param isActive { boolean }
130+
* @returns { Filters }
131+
*/
90132
_withNewSelectionOfGroup(key, isActive) {
91133
return {
92134
...this.filters,
@@ -103,27 +145,37 @@ class Filter {
103145
};
104146
}
105147

148+
/**
149+
* @private
150+
* @returns { Filters }
151+
*/
106152
_withNewFilters() {
107-
return this._elementsRefs.reduce((filtersObject, elementRef) => {
153+
console.log("this._elementsRefs", this._elementsRefs)
154+
const newFilters = this._elementsRefs.reduce((filtersObject, elementRef) => {
108155
this._getDatasetWithF(elementRef.dataset).map(([key, value]) =>
109156
this._splitByComma(value).map((val) => {
110157
if (!filtersObject[key]) {
111158
filtersObject[key] = { [val]: { selected: true, visible: true } };
112159
} else {
113160
filtersObject[key] = {
114161
...filtersObject[key],
115-
[val]: filtersObject[key][val] ?? {
116-
selected: true,
117-
visible: true,
118-
},
162+
[val]: filtersObject[key][val] ?? { selected: true, visible: true },
119163
};
120164
}
121165
})
122166
);
123167
return filtersObject;
124168
}, {});
169+
console.log("newFilters", newFilters)
170+
return newFilters
125171
}
126172

173+
/**
174+
* @private
175+
* @param key { string }
176+
* @param value { string }
177+
* @returns { Filters }
178+
*/
127179
_withToggledFilter(key, value) {
128180
return {
129181
...this.filters,
@@ -137,10 +189,16 @@ class Filter {
137189
};
138190
}
139191

192+
/**
193+
* @private
194+
* @param str { string }
195+
*/
140196
_splitByComma = (str) => str.split(",");
141197

198+
/**
199+
* @private
200+
* @param dataset { DOMStringMap }
201+
*/
142202
_getDatasetWithF = (dataset) =>
143-
Object.entries(dataset).filter(([key]) => this._startsWithF(key));
144-
145-
_startsWithF = (str) => startsWith(str, "f");
203+
Object.entries(dataset).filter(([key]) => startsWith(key, "f"));
146204
}

scala3doc/resources/dotty_res/scripts/components/FilterBar.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
/**
2+
* @typedef { import("./Filter").Filter } Filter
3+
*/
4+
15
class FilterBar extends Component {
26
constructor(props) {
37
super(props);

scala3doc/resources/dotty_res/scripts/components/FilterGroup.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ class FilterGroup extends Component {
9999
}
100100

101101
render({ filter }) {
102+
console.log(filter.filters)
102103
attachDOM(
103104
this.filterLowerContainerRef,
104105
Object.entries(filter.filters)

0 commit comments

Comments
 (0)