source: frontend/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-onchange.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 13 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[9af201e]1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = void 0;
7var _jsxAstUtils = require("jsx-ast-utils");
8var _schemas = require("../util/schemas");
9var _getElementType = _interopRequireDefault(require("../util/getElementType"));
10function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11/**
12 * @fileoverview Enforce usage of onBlur over onChange for accessibility.
13 * @author Ethan Cohen
14 */
15
16// ----------------------------------------------------------------------------
17// Rule Definition
18// ----------------------------------------------------------------------------
19
20var errorMessage = 'onBlur must be used instead of onchange, unless absolutely necessary and it causes no negative consequences for keyboard only or screen reader users.';
21var applicableTypes = ['select', 'option'];
22var schema = (0, _schemas.generateObjSchema)();
23var _default = exports["default"] = {
24 meta: {
25 docs: {
26 url: 'https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-onchange.md',
27 description: 'Enforce usage of `onBlur` over `onChange` on select menus for accessibility.'
28 },
29 deprecated: true,
30 schema: [schema]
31 },
32 create: function create(context) {
33 var elementType = (0, _getElementType["default"])(context);
34 return {
35 JSXOpeningElement: function JSXOpeningElement(node) {
36 var nodeType = elementType(node);
37 if (applicableTypes.indexOf(nodeType) === -1) {
38 return;
39 }
40 var onChange = (0, _jsxAstUtils.getProp)(node.attributes, 'onChange');
41 var hasOnBlur = (0, _jsxAstUtils.getProp)(node.attributes, 'onBlur') !== undefined;
42 if (onChange && !hasOnBlur) {
43 context.report({
44 node,
45 message: errorMessage
46 });
47 }
48 }
49 };
50 }
51};
52module.exports = exports.default;
Note: See TracBrowser for help on using the repository browser.