Skip to content

Commit

Permalink
Only disallow action modifier with on="click" parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
Joao committed Dec 2, 2021
1 parent 0a4f358 commit dd3636c
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions lib/rules/no-action-on-submit-button.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,6 @@ module.exports = class NoActionOnSubmitButton extends Rule {
return attribute.name === 'type';
}

function isActionModifier(modifier) {
let { path } = modifier;
return path.original === 'action';
}

function isOnClickModifier(modifier) {
let { path, params } = modifier;

Expand All @@ -44,9 +39,22 @@ module.exports = class NoActionOnSubmitButton extends Rule {
);
}

function isOnClickParameter(parameter) {
return parameter.key === 'on' && parameter.value.original === 'click';
}

function isDisallowedActionModifier(modifier) {
let { path, hash } = modifier;

let noParameter = hash.pairs.length === 0;
let onClickParameter = hash.pairs.find(isOnClickParameter);

return path.original === 'action' && (noParameter || onClickParameter);
}

let typeAttribute = attributes.find(isTypeAttribute);
let onClickModifier = modifiers.find(isOnClickModifier);
let actionModifier = modifiers.find(isActionModifier);
let actionModifier = modifiers.find(isDisallowedActionModifier);

// undefined button type fallbacks on "submit"
if (!typeAttribute) {
Expand Down

0 comments on commit dd3636c

Please sign in to comment.