diff --git a/.eslintrc.js b/.eslintrc.js index 2a2c14f68..bfe92311d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -21,6 +21,7 @@ module.exports = { plugins: [ 'react', + 'jsdoc', 'jsx-a11y', 'import', 'promise', @@ -270,5 +271,23 @@ module.exports = { }, parser: '@typescript-eslint/parser', }, + { + // Only enforce JSDoc comments on UI components for now. + // https://www.npmjs.com/package/eslint-plugin-jsdoc + files: ['app/soapbox/components/ui/**/*'], + rules: { + 'jsdoc/require-jsdoc': ['error', { + publicOnly: true, + require: { + ArrowFunctionExpression: true, + ClassDeclaration: true, + ClassExpression: true, + FunctionDeclaration: true, + FunctionExpression: true, + MethodDefinition: true, + }, + }], + }, + }, ], }; diff --git a/app/soapbox/components/ui/button/useButtonStyles.ts b/app/soapbox/components/ui/button/useButtonStyles.ts index b6ba9fb71..1b52e9a05 100644 --- a/app/soapbox/components/ui/button/useButtonStyles.ts +++ b/app/soapbox/components/ui/button/useButtonStyles.ts @@ -10,6 +10,7 @@ type IButtonStyles = { size: ButtonSizes } +/** Provides class names for the