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)