diff --git a/packages/eslint-plugin-pf-codemods/index.js b/packages/eslint-plugin-pf-codemods/index.js index 4f6895fc2..e896472ee 100644 --- a/packages/eslint-plugin-pf-codemods/index.js +++ b/packages/eslint-plugin-pf-codemods/index.js @@ -3,7 +3,7 @@ const rules = { "application-launcher-rename-dropdownItems": require('./lib/rules/application-launcher-rename-dropdownItems'), "aria-props": require('./lib/rules/aria-props'), "global-background-color": require('./lib/rules/global-background-color'), - "modal-remove-footer-alignment": require('./lib/rules/modal-remove-footer-alignment'), + "modal-remove-props": require('./lib/rules/modal-remove-props'), "modal-variant": require('./lib/rules/modal-variant'), "no-experimental-imports": require('./lib/rules/no-experimental-imports'), "progress-remove-info-variant": require('./lib/rules/progress-remove-info-variant'), diff --git a/packages/eslint-plugin-pf-codemods/lib/rules/modal-remove-footer-alignment.js b/packages/eslint-plugin-pf-codemods/lib/rules/modal-remove-footer-alignment.js deleted file mode 100644 index 58201ac17..000000000 --- a/packages/eslint-plugin-pf-codemods/lib/rules/modal-remove-footer-alignment.js +++ /dev/null @@ -1,10 +0,0 @@ -const { renameProp } = require('../helpers'); - -// https://github.com/patternfly/patternfly-react/pull/4017 -module.exports = { - create: renameProp( - 'Modal', - {'isFooterLeftAligned': ''}, - node => `isFooterLeftAligned prop has been removed for ${node.name.name}. The footer is now always left-aligned` - ), -}; \ No newline at end of file diff --git a/packages/eslint-plugin-pf-codemods/lib/rules/modal-remove-props.js b/packages/eslint-plugin-pf-codemods/lib/rules/modal-remove-props.js new file mode 100644 index 000000000..4c2b448e9 --- /dev/null +++ b/packages/eslint-plugin-pf-codemods/lib/rules/modal-remove-props.js @@ -0,0 +1,16 @@ +const { renameProps } = require('../helpers'); + +const renames = { + Modal: { + 'hideTitle': '', + 'isFooterLeftAligned': '' + }, + ModalBoxFooter: { + 'isFooterLeftAligned': '' + } +}; + +// https://github.com/patternfly/patternfly-react/pull/4140 +module.exports = { + create: renameProps(renames) +}; diff --git a/packages/eslint-plugin-pf-codemods/lib/rules/wizard-remove-props.js b/packages/eslint-plugin-pf-codemods/lib/rules/wizard-remove-props.js index 31827123a..575370601 100644 --- a/packages/eslint-plugin-pf-codemods/lib/rules/wizard-remove-props.js +++ b/packages/eslint-plugin-pf-codemods/lib/rules/wizard-remove-props.js @@ -5,12 +5,14 @@ const renames = { 'isCompactNav': '', 'inPage': '', 'isFullWidth': '', - 'isFullHeight': '' + 'isFullHeight': '', + 'inPage': '' } }; -// https://github.com/patternfly/patternfly-react/pull/4142 // https://github.com/patternfly/patternfly-react/pull/4116 +// https://github.com/patternfly/patternfly-react/pull/4140 +// https://github.com/patternfly/patternfly-react/pull/4142 module.exports = { create: renameProps(renames) }; diff --git a/packages/eslint-plugin-pf-codemods/test/rules/modal-remove-footer-alignment.js b/packages/eslint-plugin-pf-codemods/test/rules/modal-remove-footer-alignment.js deleted file mode 100644 index be74d0aa4..000000000 --- a/packages/eslint-plugin-pf-codemods/test/rules/modal-remove-footer-alignment.js +++ /dev/null @@ -1,24 +0,0 @@ -const ruleTester = require('./ruletester'); -const rule = require('../../lib/rules/modal-remove-footer-alignment'); - -ruleTester.run("modal-remove-footer-alignment", rule, { - valid: [ - { - code: `import { Modal } from '@patternfly/react-core'; `, - }, - { - // No @patternfly/react-core import - code: ``, - } - ], - invalid: [ - { - code: `import { Modal } from '@patternfly/react-core'; `, - output: `import { Modal } from '@patternfly/react-core'; `, - errors: [{ - message: `isFooterLeftAligned prop has been removed for Modal. The footer is now always left-aligned`, - type: "JSXOpeningElement", - }] - }, - ] -}); diff --git a/packages/eslint-plugin-pf-codemods/test/rules/modal-remove-props.js b/packages/eslint-plugin-pf-codemods/test/rules/modal-remove-props.js new file mode 100644 index 000000000..b8c3a886b --- /dev/null +++ b/packages/eslint-plugin-pf-codemods/test/rules/modal-remove-props.js @@ -0,0 +1,32 @@ +const ruleTester = require('./ruletester'); +const rule = require('../../lib/rules/modal-remove-props'); + +ruleTester.run("modal-remove-props", rule, { + valid: [ + { + code: `import { Modal } from '@patternfly/react-core'; `, + }, + { + // No @patternfly/react-core import + code: ``, + } + ], + invalid: [ + { + code: `import { Modal } from '@patternfly/react-core'; `, + output: `import { Modal } from '@patternfly/react-core'; `, + errors: [{ + message: `isFooterLeftAligned prop for Modal has been removed`, + type: "JSXOpeningElement", + }] + }, + { + code: `import { Modal } from '@patternfly/react-core'; `, + output: `import { Modal } from '@patternfly/react-core'; `, + errors: [{ + message: `hideTitle prop for Modal has been removed`, + type: "JSXOpeningElement", + }] + }, + ] +}); diff --git a/packages/eslint-plugin-pf-codemods/test/rules/wizard-remove-props.js b/packages/eslint-plugin-pf-codemods/test/rules/wizard-remove-props.js index 4e0968f8a..d314d48c7 100644 --- a/packages/eslint-plugin-pf-codemods/test/rules/wizard-remove-props.js +++ b/packages/eslint-plugin-pf-codemods/test/rules/wizard-remove-props.js @@ -43,6 +43,14 @@ ruleTester.run("wizard-remove-props", rule, { message: `isFullWidth prop for Wizard has been removed`, type: "JSXOpeningElement", }] + }, + { + code: `import { Wizard } from '@patternfly/react-core'; `, + output: `import { Wizard } from '@patternfly/react-core'; `, + errors: [{ + message: `inPage prop for Wizard has been removed`, + type: "JSXOpeningElement", + }] } ] }); diff --git a/packages/pf-codemods/README.md b/packages/pf-codemods/README.md index fa80162db..0dc47b65e 100644 --- a/packages/pf-codemods/README.md +++ b/packages/pf-codemods/README.md @@ -330,17 +330,18 @@ Out: ``` -### modal-remove-footer-alignment [(#4017)](https://github.com/patternfly/patternfly-react/pull/4017) -Removed prop `isFooterLeftAligned` from Modal and ModalBoxFooter. +### modal-remove-props [(#4017)](https://github.com/patternfly/patternfly-react/pull/4017) +- Removed props `isFooterLeftAligned` and `isFooterLeftAligned` from Modal and ModalBoxFooter. +- Removed prop `hideTitle` from Modal. To hide the Modal header, do not pass a title prop, a description prop, or a header prop. If there is no title or header passed, please provide an aria-label prop to the Modal component to make it accessible. #### Examples In: ```jsx - + ``` Out: ```jsx - + ``` ### modal-variant [(#3920)](https://github.com/patternfly/patternfly-react/pull/3920)