diff --git a/CHANGELOG.md b/CHANGELOG.md index 0895659c4..aa9e7832d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Enforce use of React PureComponents to improve performance. [#414](https://github.com/mapbox/dr-ui/pull/414) - Improve color contrast on code and anchor elements. [#434](https://github.com/mapbox/dr-ui/pull/434) +- Enable eslint-plugin-jsx-a11y. [#435](https://github.com/mapbox/dr-ui/pull/435) ## 3.3.1 diff --git a/package-lock.json b/package-lock.json index e96576f1b..f24d68e18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3996,6 +3996,24 @@ "regenerator-runtime": "^0.13.2" } }, + "@babel/runtime-corejs3": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", + "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", + "dev": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } + } + }, "@babel/template": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", @@ -6599,21 +6617,22 @@ } }, "@mapbox/eslint-config-docs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/eslint-config-docs/-/eslint-config-docs-1.5.0.tgz", - "integrity": "sha512-hFob1ch7zER69gEk/GJJK6hcc3YjP3ObUTXjKWPYAzwZop4mRyMa02zaw+pBTx3NuPrp06jhCqHp2y1dTYbyxQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@mapbox/eslint-config-docs/-/eslint-config-docs-1.6.0.tgz", + "integrity": "sha512-v27XFmFhijtqS5ymsS0zvnwT9YPPuvIxgdEPKLmU5o+/+oyMOQbdHSKIXOoLIDIjSe85ntlWmOzTUlthElojDA==", "dev": true, "requires": { "@mapbox/eslint-config-mapbox": "^3.0.0", "@mapbox/eslint-plugin-docs": "^0.3.0", "babel-eslint": "^10.1.0", - "eslint": "^7.21.0", + "eslint": "^7.24.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-es": "^4.1.0", "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.3.1", - "eslint-plugin-react": "^7.22.0", + "eslint-plugin-promise": "^5.1.0", + "eslint-plugin-react": "^7.23.2", "eslint-plugin-xss": "^0.1.10" } }, @@ -9115,6 +9134,33 @@ "sprintf-js": "~1.0.2" } }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -9526,6 +9572,12 @@ } } }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -9632,6 +9684,12 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, + "axe-core": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.4.tgz", + "integrity": "sha512-Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig==", + "dev": true + }, "axios": { "version": "0.21.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", @@ -9641,6 +9699,12 @@ "follow-redirects": "^1.10.0" } }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, "babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -12160,6 +12224,12 @@ } } }, + "core-js-pure": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.1.tgz", + "integrity": "sha512-PeyJH2SE0KuxY5eCGNWA+W+CeDpB6M1PN3S7Am7jSv/Ttuxz2SnWbIiVQOn/TDaGaGtxo8CRWHkXwJscbUHtVw==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -12830,6 +12900,12 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, "dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", @@ -14547,9 +14623,9 @@ } }, "eslint": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", - "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz", + "integrity": "sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -14717,23 +14793,6 @@ "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", "dev": true }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -14744,9 +14803,9 @@ } }, "globals": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz", - "integrity": "sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==", + "version": "13.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz", + "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -14758,12 +14817,6 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -14857,9 +14910,9 @@ } }, "eslint-config-prettier": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", - "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.2.0.tgz", + "integrity": "sha512-dWV9EVeSo2qodOPi1iBYU/x6F6diHv8uujxbxr77xExs3zTAlNXvVZKiyLsQGNz7yPV2K49JY5WjPzNIuDc2Bw==", "dev": true }, "eslint-import-resolver-node": { @@ -14947,6 +15000,48 @@ } } }, + "eslint-plugin-jsx-a11y": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", + "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.11.2", + "aria-query": "^4.2.2", + "array-includes": "^3.1.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.0.2", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.6", + "emoji-regex": "^9.0.0", + "has": "^1.0.3", + "jsx-ast-utils": "^3.1.0", + "language-tags": "^1.0.5" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } + } + }, "eslint-plugin-node": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", @@ -14986,15 +15081,15 @@ } }, "eslint-plugin-promise": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz", + "integrity": "sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng==", "dev": true }, "eslint-plugin-react": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz", - "integrity": "sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz", + "integrity": "sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==", "dev": true, "requires": { "array-includes": "^3.1.3", @@ -15020,30 +15115,6 @@ "esutils": "^2.0.2" } }, - "object.entries": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", - "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, "object.values": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", @@ -21158,6 +21229,21 @@ "stream-splicer": "^2.0.0" } }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -28012,9 +28098,9 @@ }, "dependencies": { "ajv": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.5.tgz", - "integrity": "sha512-RkiLa/AeJx7+9OvniQ/qeWu0w74A8DiPPBclQ6ji3ZQkv5KamO+QGpqmi7O4JIw3rHGUXZ6CoP9tsAkn3gyazg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz", + "integrity": "sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", diff --git a/package.json b/package.json index b03386973..83eb8182a 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@mapbox/appropriate-images-react": "^2.1.0", "@mapbox/batfish": "^2.2.0", "@mapbox/copyeditor": "^0.10.0", - "@mapbox/eslint-config-docs": "^1.5.0", + "@mapbox/eslint-config-docs": "^1.6.0", "@mapbox/eslint-config-mapbox": "^3.0.0", "@mapbox/eslint-plugin-docs": "^0.3.0", "@mapbox/jsxtreme-markdown": "^1.0.0", @@ -66,13 +66,14 @@ "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.6", "enzyme-to-json": "^3.6.2", - "eslint": "^7.23.0", - "eslint-config-prettier": "^8.1.0", + "eslint": "^7.24.0", + "eslint-config-prettier": "^8.2.0", "eslint-plugin-es": "^4.1.0", "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.3.1", - "eslint-plugin-react": "^7.23.1", + "eslint-plugin-promise": "^5.1.0", + "eslint-plugin-react": "^7.23.2", "eslint-plugin-xss": "^0.1.10", "execa": "^0.10.0", "gh-pages": "^3.1.0", diff --git a/src/components/numbered-code-snippet/__tests__/__snapshots__/numbered-code-snippet.test.js.snap b/src/components/numbered-code-snippet/__tests__/__snapshots__/numbered-code-snippet.test.js.snap index 18300aad4..beaf318ba 100644 --- a/src/components/numbered-code-snippet/__tests__/__snapshots__/numbered-code-snippet.test.js.snap +++ b/src/components/numbered-code-snippet/__tests__/__snapshots__/numbered-code-snippet.test.js.snap @@ -19,8 +19,8 @@ exports[`numbered-code-snippet Basic renders as expected 1`] = ` className="relative z2 h30" data-chunk-code="chunk-0" > -
show hidden lines
-
+
-
show hidden lines
-
+
@@ -2238,8 +2238,8 @@ exports[`numbered-code-snippet First line renders as expected 1`] = ` className="relative z2 h30" data-chunk-code="chunk-2" > -
show hidden lines
-
+ @@ -2345,8 +2345,8 @@ exports[`numbered-code-snippet Last line renders as expected 1`] = ` className="relative z2 h30" data-chunk-code="chunk-0" > -
show hidden lines
-
+
-
hide lines -
+ {this.props.children} -
hide lines -
+
); } @@ -37,7 +37,7 @@ HideLines.propTypes = { class ShowLines extends React.PureComponent { render() { return ( -
@@ -52,7 +52,7 @@ class ShowLines extends React.PureComponent {
show hidden lines
-
+ ); } } diff --git a/src/components/overview-header/__tests__/__snapshots__/overview-header.test.js.snap b/src/components/overview-header/__tests__/__snapshots__/overview-header.test.js.snap index 4d10b66da..a06ee9064 100644 --- a/src/components/overview-header/__tests__/__snapshots__/overview-header.test.js.snap +++ b/src/components/overview-header/__tests__/__snapshots__/overview-header.test.js.snap @@ -142,6 +142,7 @@ exports[`overview-header Adds Contact Us button renders as expected 1`] = ` className="none block-mxl" > @@ -332,6 +333,7 @@ exports[`overview-header All, plus Contact Us button renders as expected 1`] = ` className="none block-mxl" > @@ -516,6 +518,7 @@ exports[`overview-header Basic renders as expected 1`] = ` className="none block-mxl" > @@ -679,6 +682,7 @@ exports[`overview-header Beta product renders as expected 1`] = ` className="none block-mxl" > @@ -859,6 +863,7 @@ exports[`overview-header No optional props renders as expected 1`] = ` className="none block-mxl" > @@ -1031,6 +1036,7 @@ exports[`overview-header Some optional props renders as expected 1`] = ` className="none block-mxl" > diff --git a/src/components/overview-header/__tests__/overview-header-test-cases.js b/src/components/overview-header/__tests__/overview-header-test-cases.js index 38179255c..1799f1bd3 100644 --- a/src/components/overview-header/__tests__/overview-header-test-cases.js +++ b/src/components/overview-header/__tests__/overview-header-test-cases.js @@ -28,7 +28,10 @@ testCases.none = { ], title: "Mapbox SDK that You've Never Heard Of", image: ( - + ) } }; @@ -42,7 +45,10 @@ testCases.some = { version: '0.1.0', ghLink: 'https://github.com/mapbox', image: ( - + ) } }; @@ -55,7 +61,10 @@ testCases.beta = { title: 'Mapbox Potato SDK', tag: 'beta', image: ( - + ) } }; @@ -72,7 +81,10 @@ testCases.allContactUs = { ghLink: 'https://github.com/mapbox', contactLink: 'https://www.mapbox.com/contact/', image: ( - + ) } }; @@ -87,7 +99,10 @@ testCases.contactUs = { changelogLink: 'https://keepachangelog.com/en/0.3.0/', contactLink: 'https://www.mapbox.com/contact/', image: ( - + ) } }; @@ -109,7 +124,10 @@ testCases.customTag = { } }, image: ( - + ) } }; @@ -130,7 +148,10 @@ testCases.everything = { ghLink: 'https://github.com/mapbox', contactLink: 'https://www.mapbox.com/contact/', image: ( - + ) } }; diff --git a/src/components/overview-header/examples/basic.js b/src/components/overview-header/examples/basic.js index 66d8cca32..80bcedae5 100644 --- a/src/components/overview-header/examples/basic.js +++ b/src/components/overview-header/examples/basic.js @@ -19,7 +19,10 @@ export default class Basic extends React.PureComponent { installLink="https://www.mapbox.com/install" ghLink="https://github.com/mapbox" image={ - + } /> ); diff --git a/src/components/overview-header/examples/custom.js b/src/components/overview-header/examples/custom.js index e4895788a..aea372394 100644 --- a/src/components/overview-header/examples/custom.js +++ b/src/components/overview-header/examples/custom.js @@ -13,7 +13,10 @@ export default class Custom extends React.PureComponent { theme="bg-blue" lightText={true} image={ - + } /> ); diff --git a/src/components/related-page/__tests__/__snapshots__/related-page.test.js.snap b/src/components/related-page/__tests__/__snapshots__/related-page.test.js.snap index c228a2261..5b09e6a63 100644 --- a/src/components/related-page/__tests__/__snapshots__/related-page.test.js.snap +++ b/src/components/related-page/__tests__/__snapshots__/related-page.test.js.snap @@ -821,7 +821,7 @@ exports[`related-page tutorial renders as expected 1`] = ` `; exports[`related-page video renders as expected 1`] = ` - @@ -906,11 +906,11 @@ exports[`related-page video renders as expected 1`] = ` - + `; exports[`related-page video with svg image fallback renders as expected 1`] = ` - @@ -987,5 +987,5 @@ exports[`related-page video with svg image fallback renders as expected 1`] = ` - + `; diff --git a/src/components/related-page/related-page.js b/src/components/related-page/related-page.js index df27f1100..df212d922 100644 --- a/src/components/related-page/related-page.js +++ b/src/components/related-page/related-page.js @@ -109,11 +109,16 @@ class RelatedPage extends React.PureComponent { wmin180: showVideoThumbnail }); + const Element = showVideoModal ? 'button' : 'a'; + const elementProps = { + ...(showVideoModal && { onClick: this.handleClick }), + ...(!showVideoModal && { href: props.url }) + }; + return ( -
)}
-
+ {showVideoModal && this.renderModal()}
); diff --git a/src/components/related-page/vimeo.js b/src/components/related-page/vimeo.js index 7fa5224e0..9c8990ba0 100644 --- a/src/components/related-page/vimeo.js +++ b/src/components/related-page/vimeo.js @@ -15,6 +15,7 @@ export class VimeoModal extends React.PureComponent {