Skip to content

Commit 4716862

Browse files
committed
only verify valid config once
1 parent 2323f3e commit 4716862

File tree

1 file changed

+35
-42
lines changed

1 file changed

+35
-42
lines changed

src/lib/unpackPlotProps.js

Lines changed: 35 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export function isValidCustomConfigObject(customConfig) {
3232
if (
3333
customConfig.visibility_rules.order &&
3434
Array.isArray(customConfig.visibility_rules.order) &&
35-
customConfig.visibility_rules.order.some(o => !['blacklist', 'whitelist'].includes(o))
35+
customConfig.visibility_rules.order.every(o => ['blacklist', 'whitelist'].includes(o))
3636
) {
3737
console.error(
3838
"invalid customConfig: only 2 values are accepted in the visibility_rules.order array: 'blacklist' and 'whitelist'"
@@ -48,53 +48,46 @@ export function isValidCustomConfigObject(customConfig) {
4848
export function applyCustomConfigVisibility(props, fullValue, customConfig) {
4949
let isVisible = false;
5050

51-
if (
52-
customConfig &&
53-
customConfig === Object(customConfig) &&
54-
Object.keys(customConfig).length &&
55-
isValidCustomConfigObject(customConfig)
56-
) {
57-
const matches = o => {
58-
if (customConfig.visibility_rules[o]) {
59-
return customConfig.visibility_rules[o].some(rule => {
60-
const regex = RegExp(rule.regex_match);
61-
return rule.type === 'attrName' && regex.test(props.attr);
62-
});
63-
}
64-
return false;
65-
};
51+
const matches = o => {
52+
if (customConfig.visibility_rules[o]) {
53+
return customConfig.visibility_rules[o].some(rule => {
54+
const regex = RegExp(rule.regex_match);
55+
return rule.type === 'attrName' && regex.test(props.attr);
56+
});
57+
}
58+
return false;
59+
};
6660

67-
if (customConfig.visibility_rules.blacklist && customConfig.visibility_rules.whitelist) {
68-
// Look to see if there was an order to blacklisting or whitelisting specified
69-
const order =
70-
customConfig.visibility_rules.order && customConfig.visibility_rules.order.length
71-
? customConfig.visibility_rules.order
72-
: ['blacklist', 'whitelist'];
73-
74-
if (order[0] === 'blacklist') {
75-
const shouldBlacklist = matches('blacklist') && !matches('whitelist');
76-
if (!shouldBlacklist && hasFullValue(fullValue)) {
77-
isVisible = true;
78-
}
61+
if (customConfig.visibility_rules.blacklist && customConfig.visibility_rules.whitelist) {
62+
// Look to see if there was an order to blacklisting or whitelisting specified
63+
const order =
64+
customConfig.visibility_rules.order && customConfig.visibility_rules.order.length
65+
? customConfig.visibility_rules.order
66+
: ['blacklist', 'whitelist'];
67+
68+
if (order[0] === 'blacklist') {
69+
const shouldBlacklist = matches('blacklist') && !matches('whitelist');
70+
if (!shouldBlacklist && hasFullValue(fullValue)) {
71+
isVisible = true;
7972
}
73+
}
8074

81-
if (order[0] === 'whitelist') {
82-
const shouldWhitelist = matches('whitelist') && !matches('blacklist');
83-
if (shouldWhitelist && hasFullValue(fullValue)) {
84-
isVisible = true;
85-
}
75+
if (order[0] === 'whitelist') {
76+
const shouldWhitelist = matches('whitelist') && !matches('blacklist');
77+
if (shouldWhitelist && hasFullValue(fullValue)) {
78+
isVisible = true;
8679
}
87-
} else {
88-
if (customConfig.visibility_rules.blacklist) {
89-
if (!matches('blacklist') && hasFullValue(fullValue)) {
90-
isVisible = true;
91-
}
80+
}
81+
} else {
82+
if (customConfig.visibility_rules.blacklist) {
83+
if (!matches('blacklist') && hasFullValue(fullValue)) {
84+
isVisible = true;
9285
}
86+
}
9387

94-
if (customConfig.visibility_rules.whitelist) {
95-
if (matches('whitelist') && hasFullValue(fullValue)) {
96-
isVisible = true;
97-
}
88+
if (customConfig.visibility_rules.whitelist) {
89+
if (matches('whitelist') && hasFullValue(fullValue)) {
90+
isVisible = true;
9891
}
9992
}
10093
}

0 commit comments

Comments
 (0)