1- /* eslint-disable no-restricted-syntax */
21const {
32 api : {
43 pvp : { leagues } ,
54 } ,
65 defaultFilters : {
7- nests : { avgSliderStep } ,
6+ nests : { avgSliderStep, avgFilter } ,
87 } ,
98} = require ( '../config' )
109
10+ const refSliders = {
11+ pokemon : {
12+ primary : [
13+ {
14+ name : 'iv' ,
15+ label : '%' ,
16+ min : 0 ,
17+ max : 100 ,
18+ perm : 'iv' ,
19+ color : 'secondary' ,
20+ } ,
21+ ] ,
22+ secondary : [
23+ {
24+ name : 'level' ,
25+ label : '' ,
26+ min : 1 ,
27+ max : 35 ,
28+ perm : 'iv' ,
29+ } ,
30+ {
31+ name : 'atk_iv' ,
32+ label : '' ,
33+ min : 0 ,
34+ max : 15 ,
35+ perm : 'iv' ,
36+ } ,
37+ {
38+ name : 'def_iv' ,
39+ label : '' ,
40+ min : 0 ,
41+ max : 15 ,
42+ perm : 'iv' ,
43+ } ,
44+ {
45+ name : 'sta_iv' ,
46+ label : '' ,
47+ min : 0 ,
48+ max : 15 ,
49+ perm : 'iv' ,
50+ } ,
51+ ] ,
52+ } ,
53+ nests : {
54+ secondary : [
55+ {
56+ name : 'avgFilter' ,
57+ i18nKey : 'spawns_per_hour' ,
58+ label : '' ,
59+ min : avgFilter [ 0 ] ,
60+ max : avgFilter [ 1 ] ,
61+ perm : 'nests' ,
62+ step : avgSliderStep ,
63+ } ,
64+ ] ,
65+ } ,
66+ }
67+
68+ leagues . forEach ( ( league ) =>
69+ refSliders . pokemon . primary . push ( {
70+ name : league . name ,
71+ label : 'rank' ,
72+ min : league . minRank || 1 ,
73+ max : league . maxRank || 100 ,
74+ perm : 'pvp' ,
75+ color : 'primary' ,
76+ } ) ,
77+ )
78+
79+ const ignoredKeys = [
80+ 'enabled' ,
81+ 'filter' ,
82+ 'showQuestSet' ,
83+ 'badge' ,
84+ 'avgFilter' ,
85+ 'raidTier' ,
86+ ]
87+
1188module . exports = function generateUi ( filters , perms ) {
1289 const ui = { }
13- const ignoredKeys = [
14- 'enabled' ,
15- 'filter' ,
16- 'showQuestSet' ,
17- 'badge' ,
18- 'avgFilter' ,
19- 'raidTier' ,
20- ]
2190
2291 // builds the initial categories
23- for ( const [ key , value ] of Object . entries ( filters ) ) {
92+ Object . entries ( filters ) . forEach ( ( [ key , value ] ) => {
2493 let sliders
2594 if ( value ) {
2695 switch ( key ) {
27- case 'nests' :
28- ui [ key ] = { }
29- sliders = {
30- secondary : [
31- {
32- name : 'avgFilter' ,
33- i18nKey : 'spawns_per_hour' ,
34- label : '' ,
35- min : filters . nests . avgFilter [ 0 ] ,
36- max : filters . nests . avgFilter [ 1 ] ,
37- perm : 'nests' ,
38- step : avgSliderStep ,
39- } ,
40- ] ,
41- }
42- break
43- case 'pokemon' :
44- ui [ key ] = { }
45- sliders = {
46- primary : [
47- {
48- name : 'iv' ,
49- label : '%' ,
50- min : 0 ,
51- max : 100 ,
52- perm : 'iv' ,
53- color : 'secondary' ,
54- } ,
55- ] ,
56- secondary : [
57- {
58- name : 'level' ,
59- label : '' ,
60- min : 1 ,
61- max : 35 ,
62- perm : 'iv' ,
63- } ,
64- {
65- name : 'atk_iv' ,
66- label : '' ,
67- min : 0 ,
68- max : 15 ,
69- perm : 'iv' ,
70- } ,
71- {
72- name : 'def_iv' ,
73- label : '' ,
74- min : 0 ,
75- max : 15 ,
76- perm : 'iv' ,
77- } ,
78- {
79- name : 'sta_iv' ,
80- label : '' ,
81- min : 0 ,
82- max : 15 ,
83- perm : 'iv' ,
84- } ,
85- ] ,
86- }
87- leagues . forEach ( ( league ) =>
88- sliders . primary . push ( {
89- name : league . name ,
90- label : 'rank' ,
91- min : league . minRank || 1 ,
92- max : league . maxRank || 100 ,
93- perm : 'pvp' ,
94- color : 'primary' ,
95- } ) ,
96- )
97- break
9896 case 'submissionCells' :
9997 case 'portals' :
10098 if ( ! ui . wayfarer ) ui . wayfarer = { }
@@ -108,10 +106,11 @@ module.exports = function generateUi(filters, perms) {
108106 break
109107 default :
110108 ui [ key ] = { }
109+ sliders = refSliders [ key ]
111110 break
112111 }
113112 // builds each subcategory
114- for ( const [ subKey , subValue ] of Object . entries ( value ) ) {
113+ Object . entries ( value ) . forEach ( ( [ subKey , subValue ] ) => {
115114 if (
116115 ( ! ignoredKeys . includes ( subKey ) && subValue !== undefined ) ||
117116 key === 'weather' ||
@@ -136,7 +135,7 @@ module.exports = function generateUi(filters, perms) {
136135 break
137136 }
138137 }
139- }
138+ } )
140139 // adds any sliders present
141140 if ( sliders ) {
142141 ui [ key ] . sliders = sliders
@@ -150,7 +149,7 @@ module.exports = function generateUi(filters, perms) {
150149 } )
151150 }
152151 }
153- }
152+ } )
154153
155154 // deletes any menus that do not have any items/perms
156155 Object . keys ( ui ) . forEach ( ( category ) => {
0 commit comments