@@ -44,14 +57,14 @@ function RuleRow({
{(() => {
switch (recommended) {
case 'recommended':
- return '✅';
+ return RECOMMENDED_CONFIG_EMOJI;
case 'strict':
- return '🔒';
+ return STRICT_CONFIG_EMOJI;
case 'stylistic':
- return '🎨';
+ return STYLISTIC_CONFIG_EMOJI;
default:
- // for some reason the current version of babel loader won't elide this correctly
- // recommended satisfies undefined;
+ // for some reason the current version of babel loader won't elide
+ // this correctly recommended satisfies undefined;
return '';
}
})()}
@@ -68,14 +81,33 @@ function RuleRow({
: undefined
}
>
- {fixable ? '🔧\n' : '\n'}
- {hasSuggestions ? '💡' : ''}
+ {fixable ? FIXABLE_EMOJI : ''}
+
+ {hasSuggestions ? SUGGESTIONS_EMOJI : ''}
|
- {requiresTypeChecking ? '💭' : ''}
+ {requiresTypeChecking ? TYPE_INFORMATION_EMOJI : ''}
+ |
+
+ {extendsBaseRule ? EXTENSION_RULE_EMOJI : ''}
+ |
+
+ {formatting ? FORMATTING_RULE_EMOJI : ''}
+ |
+
+ {deprecated ? DEPRECATED_RULE_EMOJI : ''}
|
);
@@ -132,56 +164,52 @@ function match(mode: FilterMode, value: boolean): boolean | undefined {
return undefined;
}
-export default function RulesTable({
- ruleset,
-}: {
- ruleset: 'extension-rules' | 'supported-rules';
-}): React.JSX.Element {
- const [filters, changeFilter] = useRulesFilters(ruleset);
+export default function RulesTable(): React.JSX.Element {
+ const [filters, changeFilter] = useRulesFilters();
const rules = useRulesMeta();
- const extensionRules = ruleset === 'extension-rules';
const relevantRules = useMemo(
() =>
- rules
- .filter(r => !!extensionRules === !!r.docs?.extendsBaseRule)
- .filter(r => {
- const opinions = [
- match(filters.recommended, r.docs?.recommended === 'recommended'),
- match(
- filters.strict,
- r.docs?.recommended === 'recommended' ||
- r.docs?.recommended === 'strict',
- ),
- match(filters.stylistic, r.docs?.recommended === 'stylistic'),
- match(filters.fixable, !!r.fixable),
- match(filters.suggestions, !!r.hasSuggestions),
- match(filters.typeInformation, !!r.docs?.requiresTypeChecking),
- ].filter((o): o is boolean => o !== undefined);
- return opinions.every(o => o);
- }),
- [rules, extensionRules, filters],
+ rules.filter(r => {
+ const opinions = [
+ match(filters.recommended, r.docs?.recommended === 'recommended'),
+ match(
+ filters.strict,
+ r.docs?.recommended === 'recommended' ||
+ r.docs?.recommended === 'strict',
+ ),
+ match(filters.stylistic, r.docs?.recommended === 'stylistic'),
+ match(filters.fixable, !!r.fixable),
+ match(filters.suggestions, !!r.hasSuggestions),
+ match(filters.typeInformation, !!r.docs?.requiresTypeChecking),
+ match(filters.extension, !!r.docs?.extendsBaseRule),
+ match(filters.formatting, r.type === 'layout'),
+ match(filters.deprecated, !!r.deprecated),
+ ].filter((o): o is boolean => o !== undefined);
+ return opinions.every(o => o);
+ }),
+ [rules, filters],
);
return (
<>