diff --git a/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js b/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js new file mode 100644 index 000000000..3bde32ba4 --- /dev/null +++ b/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js @@ -0,0 +1,11 @@ +const { renameProp } = require('../../helpers'); + + // https://github.com/patternfly/patternfly-react/pull/8518 + module.exports = { + meta: { fixable: 'code' }, + create: renameProp( + 'Alert', + {'titleHeadingLevel': 'component'}, + node => `titleHeadingLevel prop has been removed for ${node.name.name} and replaced with the component prop.` + ), + }; diff --git a/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js b/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js new file mode 100644 index 000000000..d8d3c822a --- /dev/null +++ b/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js @@ -0,0 +1,24 @@ +const ruleTester = require('../../ruletester'); +const rule = require('../../../lib/rules/v5/alert-remove-titleHeadingLevel'); + +ruleTester.run("alert-remove-titleHeadingLevel", rule, { + valid: [ + { + code: `import { Alert } from '@patternfly/react-core'; `, + }, + { + // No @patternfly/react-core import + code: ``, + } + ], + invalid: [ + { + code: `import { Alert } from '@patternfly/react-core'; `, + output: `import { Alert } from '@patternfly/react-core'; `, + errors: [{ + message: `titleHeadingLevel prop has been removed for Alert and replaced with the component prop.`, + type: "JSXOpeningElement", + }] + } + ] +}); diff --git a/packages/pf-codemods/README.md b/packages/pf-codemods/README.md index a94ea7490..2e36c279c 100644 --- a/packages/pf-codemods/README.md +++ b/packages/pf-codemods/README.md @@ -96,6 +96,22 @@ Out: ``` +### alert-replace-titleHeadingLevel [(#8518)](https://github.com/patternfly/patternfly-react/pull/8518) + +We've removed the `titleHeadlingLevel` prop and replaced it with the `component` prop. + +In: + +```jsx + +``` + +Out: + +```jsx + +``` + ### applicationLauncher-warn-input [(#8293)](https://github.com/patternfly/patternfly-react/pull/8293) We've updated the internal input in ApplicationLauncher to the PatternFly SearchInput. Any relative selectors, such as in unit tests, may need to be updated. diff --git a/test/test.tsx b/test/test.tsx index 677d54f2b..eaa60bcb7 100644 --- a/test/test.tsx +++ b/test/test.tsx @@ -37,6 +37,7 @@ const isRead = true; const newTheme = getCustomTheme("1", "2", "3"); <> +