- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2.7k
Description
Hi all 👋
First off thank you so much for this plugin, it has helped me many times, and saved me countless hours of debugging
I would like to put forward an idea to extend the following two rules
- react/forbid-component-props
- react/forbid-dom-props
The former accepts an allowedFor option, and I would like to introduce its counterpart dissalowedFor.
It would be particularly interesting for the react/forbid-dom-props rule as the Web platform constantly evolves, and even though it is rare, they sometimes deprecate old attributes.
To give you an example, the <form> tag used to receive an accept argument, however it is now deprecated and that attribute should be set on an <input type="file">.
There are no ways at the moment in eslint-plugin-react to express that. I would be happy to implement that directly but wanted to create this issue first to gather feedback from the community and settled on the proper syntax, naming and behavioura
Syntax
{
  "propName": "accept"
  "disallowedFor": [form],
  "message": "Avoid using the accept attribute on <form>"
}
To ensure backwards compatibility I believe the allowedFor option should take precendance over the disallowedFor option in the case of the following example, only allowedFor would be applied and a warning would be added to the terminal to notify the developer that they have conflicting rules configuration
Edit: as @ljharb pointed out, the following schema would not be valid as the two options would be mutually exclusive
{
  "propName": "accept"
  "disallowedFor": [form],
  "allowedFor": [input]
  "message": "Avoid using the accept attribute on <form>"
}