From 7c2e56b7510ba212ee0300d0916dca405429844c Mon Sep 17 00:00:00 2001 From: Vinh Date: Sat, 23 Nov 2019 02:10:51 +0700 Subject: [PATCH] [CORL-719] A11y runtime checks using react-axe (#2725) * feature: use react-axe and fix some a11y issues in stream * fix: adapt snapshots * chore: fix axe warnings in auth and account bundle * chore: improve accessibility in install bundle * chore: add some comments --- package-lock.json | 41 + package.json | 2 + src/core/client/account/index.html | 2 +- src/core/client/account/index.tsx | 3 + src/core/client/account/routes/NotFound.tsx | 6 +- .../download/Download/DownloadDescription.tsx | 2 +- .../download/Download/DownloadRoute.tsx | 12 +- .../routes/email/Confirm/ConfirmRoute.tsx | 16 +- .../Unsubscribe/UnsubscribeRoute.tsx | 16 +- .../routes/password/Reset/ResetRoute.tsx | 16 +- .../__snapshots__/confirmEmail.spec.tsx.snap | 8 +- .../__snapshots__/resetPassword.spec.tsx.snap | 8 +- .../unsubscribeNotifications.spec.tsx.snap | 8 +- src/core/client/admin/index.html | 2 +- src/core/client/admin/index.tsx | 3 + src/core/client/auth-callback/index.html | 2 +- .../client/auth/components/Header/Bar.tsx | 2 +- .../client/auth/components/Header/SubBar.tsx | 2 +- .../Header/__snapshots__/Bar.spec.tsx.snap | 4 +- .../Header/__snapshots__/SubBar.spec.tsx.snap | 4 +- src/core/client/auth/components/Main.tsx | 4 +- .../__snapshots__/Main.spec.tsx.snap | 4 +- src/core/client/auth/hooks/useResizePopup.ts | 48 +- src/core/client/auth/index.html | 2 +- src/core/client/auth/index.tsx | 3 + .../addEmailAddress.spec.tsx.snap | 8 +- .../createPassword.spec.tsx.snap | 8 +- .../createUsername.spec.tsx.snap | 8 +- .../forgotPassword.spec.tsx.snap | 12 +- .../test/__snapshots__/signIn.spec.tsx.snap | 32 +- .../test/__snapshots__/signUp.spec.tsx.snap | 64 +- src/core/client/count/index.html | 2 +- src/core/client/embed/index.html | 2 +- .../framework/helpers/potentiallyInjectAxe.ts | 62 + src/core/client/install/App/App.tsx | 4 +- src/core/client/install/App/MainBar.tsx | 4 +- .../App/__snapshots__/App.spec.tsx.snap | 4 +- .../install/App/steps/AddOrganizationStep.tsx | 15 +- .../App/steps/CreateYourAccountStep.tsx | 20 +- .../App/steps/PermittedDomainsStep.tsx | 5 +- .../install/App/steps/SelectLanguageStep.tsx | 11 +- src/core/client/install/index.html | 2 +- src/core/client/install/index.tsx | 3 + src/core/client/stream/App/App.tsx | 60 +- .../App/__snapshots__/App.spec.tsx.snap | 59 +- src/core/client/stream/index.html | 2 +- src/core/client/stream/index.tsx | 10 +- .../Comments/Comment/CommentContainer.tsx | 4 +- .../ModerationDropdown/CaretContainer.tsx | 3 +- .../PermalinkButton/PermalinkPopover.tsx | 17 +- .../Username/UsernameWithPopoverContainer.tsx | 29 +- .../CommentContainer.spec.tsx.snap | 165 ++- .../FeaturedCommentContainer.tsx | 4 +- .../PostCommentForm/PostCommentFormFake.tsx | 2 +- .../PostCommentFormFake.spec.tsx.snap | 4 +- .../MessageBoxConfig/MessageBoxConfig.tsx | 20 +- .../Profile/CommentHistory/CommentHistory.tsx | 6 +- .../CommentHistory.spec.tsx.snap | 3 + .../DeleteAccount/Pages/ConfirmPage.tsx | 27 +- .../NotificationSettingsContainer.tsx | 6 +- .../renderFeaturedStream.spec.tsx.snap | 861 ++++++------ .../__snapshots__/permalinkView.spec.tsx.snap | 40 +- ...permalinkViewLoadMoreParents.spec.tsx.snap | 32 +- .../__snapshots__/editComment.spec.tsx.snap | 32 +- .../__snapshots__/loadMore.spec.tsx.snap | 16 +- .../__snapshots__/postComment.spec.tsx.snap | 8 +- .../postLocalReply.spec.tsx.snap | 64 +- .../__snapshots__/postReply.spec.tsx.snap | 16 +- .../renderCommunityGuidelines.spec.tsx.snap | 20 +- .../renderMessageBox.spec.tsx.snap | 4 +- .../__snapshots__/renderReplies.spec.tsx.snap | 32 +- .../__snapshots__/renderStream.spec.tsx.snap | 1189 +++++++++-------- .../showAllReplies.spec.tsx.snap | 8 +- .../showConversation.spec.tsx.snap | 8 +- .../__snapshots__/sortStream.spec.tsx.snap | 16 +- .../__snapshots__/account.spec.tsx.snap | 793 +++++------ .../__snapshots__/myComments.spec.tsx.snap | 1 + .../ui/components/Tooltip/TooltipButton.tsx | 3 + src/locales/en-US/stream.ftl | 9 + 79 files changed, 2211 insertions(+), 1848 deletions(-) create mode 100644 src/core/client/framework/helpers/potentiallyInjectAxe.ts diff --git a/package-lock.json b/package-lock.json index a912a81e9..6d1a9a28c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4193,6 +4193,25 @@ "csstype": "^2.2.0" } }, + "@types/react-axe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/react-axe/-/react-axe-3.1.0.tgz", + "integrity": "sha512-zBQGSlWVwiMiKmDsFS5+2uO5tt1M2fdD3mTkOAA4EwV2uWrzi02d5NMhLZtxpyaCWtwz5xNLO4INotoWZUAg0A==", + "dev": true, + "requires": { + "@types/react": "*", + "@types/react-dom": "*", + "axe-core": "3.2.2" + }, + "dependencies": { + "axe-core": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.2.2.tgz", + "integrity": "sha512-gAy4kMSPpuRJV3mwictJqlg5LhE84Vw2CydKdC4tvrLhR6+G3KW51zbL/vYujcLA2jvWOq3HMHrVeNuw+mrLVA==", + "dev": true + } + } + }, "@types/react-copy-to-clipboard": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.2.6.tgz", @@ -6197,6 +6216,12 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" }, + "axe-core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.0.tgz", + "integrity": "sha512-5C0OdgxPv/DrQguO6Taj5F1dY5OlkWg4SVmZIVABFYKWlnAc5WTLPzG+xJSgIwf2fmY+NiNGiZXhXx2qT0u/9Q==", + "dev": true + }, "axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", @@ -28379,6 +28404,16 @@ } } }, + "react-axe": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/react-axe/-/react-axe-3.3.0.tgz", + "integrity": "sha512-JoxU2jcTla37U6MtqIoYnGaRQcAHkNm9JxTjx2wcEgFm8Zd2A2vo9eboxcmpLjklXDKJwJNbyDo2Jcbbme6xwA==", + "dev": true, + "requires": { + "axe-core": "^3.3.2", + "requestidlecallback": "^0.3.0" + } + }, "react-codemirror2": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/react-codemirror2/-/react-codemirror2-5.1.0.tgz", @@ -30678,6 +30713,12 @@ "tough-cookie": "^2.3.3" } }, + "requestidlecallback": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/requestidlecallback/-/requestidlecallback-0.3.0.tgz", + "integrity": "sha1-b7dOBzP5DfP6pIOPn2oqX5t0KsU=", + "dev": true + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", diff --git a/package.json b/package.json index e6c538942..9b2937d0d 100644 --- a/package.json +++ b/package.json @@ -208,6 +208,7 @@ "@types/permit": "^0.2.1", "@types/prop-types": "^15.5.8", "@types/react": "^16.8.15", + "@types/react-axe": "^3.1.0", "@types/react-copy-to-clipboard": "^4.2.6", "@types/react-dom": "^16.8.4", "@types/react-helmet": "^5.0.10", @@ -320,6 +321,7 @@ "pym.js": "^1.3.2", "raw-loader": "^0.5.1", "react": "^16.9.0-alpha.0", + "react-axe": "^3.3.0", "react-copy-to-clipboard": "^5.0.1", "react-dev-utils": "^9.0.0", "react-dom": "^16.9.0-alpha.0", diff --git a/src/core/client/account/index.html b/src/core/client/account/index.html index 9d6ffd78f..6f23b8f89 100644 --- a/src/core/client/account/index.html +++ b/src/core/client/account/index.html @@ -4,7 +4,7 @@ Coral - Account - + diff --git a/src/core/client/account/index.tsx b/src/core/client/account/index.tsx index b8198709b..a2c2cae04 100644 --- a/src/core/client/account/index.tsx +++ b/src/core/client/account/index.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; import ReactDOM from "react-dom"; +import potentiallyInjectAxe from "coral-framework/helpers/potentiallyInjectAxe"; import { createManaged } from "coral-framework/lib/bootstrap"; import App from "./App"; @@ -11,6 +12,8 @@ import localesData from "./locales"; import "coral-ui/theme/variables.css"; async function main() { + // Potentially inject react-axe for runtime a11y checks. + await potentiallyInjectAxe(); const ManagedCoralContextProvider = await createManaged({ initLocalState, localesData, diff --git a/src/core/client/account/routes/NotFound.tsx b/src/core/client/account/routes/NotFound.tsx index 15c6aa43f..e6c76557f 100644 --- a/src/core/client/account/routes/NotFound.tsx +++ b/src/core/client/account/routes/NotFound.tsx @@ -3,8 +3,10 @@ import React, { FunctionComponent } from "react"; import { HorizontalGutter, Typography } from "coral-ui/components"; const NotFound: FunctionComponent = () => ( - - Not Found + + + Not Found + ); diff --git a/src/core/client/account/routes/download/Download/DownloadDescription.tsx b/src/core/client/account/routes/download/Download/DownloadDescription.tsx index 0d197ae10..c7ca596d8 100644 --- a/src/core/client/account/routes/download/Download/DownloadDescription.tsx +++ b/src/core/client/account/routes/download/Download/DownloadDescription.tsx @@ -10,7 +10,7 @@ const DownloadDescription: FunctionComponent = () => { return ( -
Download Your Comment History
+

Download Your Comment History

diff --git a/src/core/client/account/routes/download/Download/DownloadRoute.tsx b/src/core/client/account/routes/download/Download/DownloadRoute.tsx index 518077f85..01b03b440 100644 --- a/src/core/client/account/routes/download/Download/DownloadRoute.tsx +++ b/src/core/client/account/routes/download/Download/DownloadRoute.tsx @@ -32,35 +32,35 @@ const DownloadRoute: FunctionComponent = ({ token }) => { if (state === "UNCHECKED") { return ( -
+
-
+ ); } if (state !== "VALID" || error) { return ( -
+
-
+ ); } return ( -
+
-
+ ); }; diff --git a/src/core/client/account/routes/email/Confirm/ConfirmRoute.tsx b/src/core/client/account/routes/email/Confirm/ConfirmRoute.tsx index 8efd5bb3a..704be370c 100644 --- a/src/core/client/account/routes/email/Confirm/ConfirmRoute.tsx +++ b/src/core/client/account/routes/email/Confirm/ConfirmRoute.tsx @@ -35,36 +35,36 @@ const ConfirmRoute: React.FunctionComponent = ({ token }) => { if (state === "UNCHECKED") { return ( -
+
-
+ ); } if (state !== "VALID" || error) { return ( -
+
-
+ ); } return !finished ? ( -
+
-
+ ) : ( -
+
-
+ ); }; diff --git a/src/core/client/account/routes/notifications/Unsubscribe/UnsubscribeRoute.tsx b/src/core/client/account/routes/notifications/Unsubscribe/UnsubscribeRoute.tsx index 41c029362..9375784bc 100644 --- a/src/core/client/account/routes/notifications/Unsubscribe/UnsubscribeRoute.tsx +++ b/src/core/client/account/routes/notifications/Unsubscribe/UnsubscribeRoute.tsx @@ -35,36 +35,36 @@ const UnsubscribeRoute: React.FunctionComponent = ({ token }) => { if (state === "UNCHECKED") { return ( -
+
-
+ ); } if (state !== "VALID" || error) { return ( -
+
-
+ ); } return !finished ? ( -
+
-
+ ) : ( -
+
-
+ ); }; diff --git a/src/core/client/account/routes/password/Reset/ResetRoute.tsx b/src/core/client/account/routes/password/Reset/ResetRoute.tsx index d12870272..9b4f2e6a6 100644 --- a/src/core/client/account/routes/password/Reset/ResetRoute.tsx +++ b/src/core/client/account/routes/password/Reset/ResetRoute.tsx @@ -35,36 +35,36 @@ const ResetRoute: React.FunctionComponent = ({ token }) => { if (state === "UNCHECKED") { return ( -
+
-
+ ); } if (state !== "VALID" || error) { return ( -
+
-
+ ); } return !finished ? ( -
+
-
+ ) : ( -
+
-
+ ); }; diff --git a/src/core/client/account/test/__snapshots__/confirmEmail.spec.tsx.snap b/src/core/client/account/test/__snapshots__/confirmEmail.spec.tsx.snap index e917f7090..320dbb64f 100644 --- a/src/core/client/account/test/__snapshots__/confirmEmail.spec.tsx.snap +++ b/src/core/client/account/test/__snapshots__/confirmEmail.spec.tsx.snap @@ -10,7 +10,7 @@ exports[`renders form 1`] = `
-
-
+
`; @@ -73,7 +73,7 @@ exports[`renders missing confirm token 1`] = `
-
-
+
`; diff --git a/src/core/client/account/test/__snapshots__/resetPassword.spec.tsx.snap b/src/core/client/account/test/__snapshots__/resetPassword.spec.tsx.snap index bbb759170..a152928d3 100644 --- a/src/core/client/account/test/__snapshots__/resetPassword.spec.tsx.snap +++ b/src/core/client/account/test/__snapshots__/resetPassword.spec.tsx.snap @@ -10,7 +10,7 @@ exports[`renders form 1`] = `
-
-
+ `; @@ -130,7 +130,7 @@ exports[`renders missing reset token 1`] = `
-
-
+ `; diff --git a/src/core/client/account/test/__snapshots__/unsubscribeNotifications.spec.tsx.snap b/src/core/client/account/test/__snapshots__/unsubscribeNotifications.spec.tsx.snap index ceee687be..00c741c19 100644 --- a/src/core/client/account/test/__snapshots__/unsubscribeNotifications.spec.tsx.snap +++ b/src/core/client/account/test/__snapshots__/unsubscribeNotifications.spec.tsx.snap @@ -10,7 +10,7 @@ exports[`renders form 1`] = `
-
-
+ `; @@ -63,7 +63,7 @@ exports[`renders missing confirm token 1`] = `
-
-
+ `; diff --git a/src/core/client/admin/index.html b/src/core/client/admin/index.html index 13fb0a90e..5afbbefbd 100644 --- a/src/core/client/admin/index.html +++ b/src/core/client/admin/index.html @@ -4,7 +4,7 @@ Coral - Admin - + diff --git a/src/core/client/admin/index.tsx b/src/core/client/admin/index.tsx index 50eac4933..be4826989 100644 --- a/src/core/client/admin/index.tsx +++ b/src/core/client/admin/index.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; import ReactDOM from "react-dom"; +import potentiallyInjectAxe from "coral-framework/helpers/potentiallyInjectAxe"; import { createManaged } from "coral-framework/lib/bootstrap"; import App from "./App"; @@ -12,6 +13,8 @@ import localesData from "./locales"; import "coral-ui/theme/variables.css"; async function main() { + // Potentially inject react-axe for runtime a11y checks. + await potentiallyInjectAxe(); const ManagedCoralContextProvider = await createManaged({ initLocalState, localesData, diff --git a/src/core/client/auth-callback/index.html b/src/core/client/auth-callback/index.html index 53c5d6e00..e18bf8a91 100644 --- a/src/core/client/auth-callback/index.html +++ b/src/core/client/auth-callback/index.html @@ -4,7 +4,7 @@ Coral - Auth Callback - + diff --git a/src/core/client/auth/components/Header/Bar.tsx b/src/core/client/auth/components/Header/Bar.tsx index a3c16eee8..14c4a7f35 100644 --- a/src/core/client/auth/components/Header/Bar.tsx +++ b/src/core/client/auth/components/Header/Bar.tsx @@ -10,7 +10,7 @@ export interface BarProps { const Bar: FunctionComponent = props => ( -
{props.children}
+
{props.children}
); diff --git a/src/core/client/auth/components/Header/SubBar.tsx b/src/core/client/auth/components/Header/SubBar.tsx index 652c6fe28..51405a79d 100644 --- a/src/core/client/auth/components/Header/SubBar.tsx +++ b/src/core/client/auth/components/Header/SubBar.tsx @@ -10,7 +10,7 @@ export interface SubBarProps { const SubBar: FunctionComponent = props => ( -
{props.children}
+
); diff --git a/src/core/client/auth/components/Header/__snapshots__/Bar.spec.tsx.snap b/src/core/client/auth/components/Header/__snapshots__/Bar.spec.tsx.snap index c7d359668..febeb8e31 100644 --- a/src/core/client/auth/components/Header/__snapshots__/Bar.spec.tsx.snap +++ b/src/core/client/auth/components/Header/__snapshots__/Bar.spec.tsx.snap @@ -6,8 +6,8 @@ exports[`renders correctly 1`] = ` className="Bar-root" justifyContent="center" > -
+
Hello World -
+ `; diff --git a/src/core/client/auth/components/Header/__snapshots__/SubBar.spec.tsx.snap b/src/core/client/auth/components/Header/__snapshots__/SubBar.spec.tsx.snap index 0884035c5..a815dab38 100644 --- a/src/core/client/auth/components/Header/__snapshots__/SubBar.spec.tsx.snap +++ b/src/core/client/auth/components/Header/__snapshots__/SubBar.spec.tsx.snap @@ -6,8 +6,8 @@ exports[`renders correctly 1`] = ` className="SubBar-root" justifyContent="center" > -
+
+ `; diff --git a/src/core/client/auth/components/Main.tsx b/src/core/client/auth/components/Main.tsx index 91547e0d5..263165e64 100644 --- a/src/core/client/auth/components/Main.tsx +++ b/src/core/client/auth/components/Main.tsx @@ -13,9 +13,9 @@ const Main: FunctionComponent = ({ className, ...rest }) => ( -
+
{children} -
+ ); export default Main; diff --git a/src/core/client/auth/components/__snapshots__/Main.spec.tsx.snap b/src/core/client/auth/components/__snapshots__/Main.spec.tsx.snap index 0ffccaefc..1bba33f3d 100644 --- a/src/core/client/auth/components/__snapshots__/Main.spec.tsx.snap +++ b/src/core/client/auth/components/__snapshots__/Main.spec.tsx.snap @@ -1,9 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`renders correctly 1`] = ` -
Hello World -
+ `; diff --git a/src/core/client/auth/hooks/useResizePopup.ts b/src/core/client/auth/hooks/useResizePopup.ts index d607dc3f2..916ca0387 100644 --- a/src/core/client/auth/hooks/useResizePopup.ts +++ b/src/core/client/auth/hooks/useResizePopup.ts @@ -1,47 +1,37 @@ -import { useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useRef } from "react"; import { useResizeObserver } from "coral-framework/hooks"; import resizePopup from "../dom/resizePopup"; export default function useResizePopup() { - const [polling, setPolling] = useState(true); - const [pollTimeout, setPollTimeout] = useState(null); + const pollTimeout = useRef(); - const pollPopupHeight = useCallback( - (interval = 200) => { - if (!polling) { - return; - } - - // Save the reference to the browser timeout we create. - setPollTimeout( - // Create the timeout to fire after the interval. - setTimeout(() => { - // Using requestAnimationFrame, resize the popup, and reschedule the - // resize timeout again in another interval. - window.requestAnimationFrame(() => { - resizePopup(); - pollPopupHeight(interval); - }); - }, interval) - ); - }, - [pollTimeout, setPollTimeout, polling] - ); + const pollPopupHeight = useCallback((interval = 200) => { + // Save the reference to the browser timeout we create. + pollTimeout.current = + // Create the timeout to fire after the interval. + setTimeout(() => { + // Using requestAnimationFrame, resize the popup, and reschedule the + // resize timeout again in another interval. + window.requestAnimationFrame(() => { + resizePopup(); + pollPopupHeight(interval); + }); + }, interval); + }, []); useEffect(() => { // Poll for popup height changes. pollPopupHeight(); return () => { - if (pollTimeout) { - clearTimeout(pollTimeout); - setPollTimeout(null); - setPolling(false); + if (pollTimeout.current) { + clearTimeout(pollTimeout.current); + pollTimeout.current = null; } }; - }, [setPollTimeout, setPolling]); + }, []); const ref = useResizeObserver(() => { resizePopup(); diff --git a/src/core/client/auth/index.html b/src/core/client/auth/index.html index aaecfbc6e..f68dcd82a 100644 --- a/src/core/client/auth/index.html +++ b/src/core/client/auth/index.html @@ -4,7 +4,7 @@ Coral - Auth - + diff --git a/src/core/client/auth/index.tsx b/src/core/client/auth/index.tsx index b8198709b..a2c2cae04 100644 --- a/src/core/client/auth/index.tsx +++ b/src/core/client/auth/index.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; import ReactDOM from "react-dom"; +import potentiallyInjectAxe from "coral-framework/helpers/potentiallyInjectAxe"; import { createManaged } from "coral-framework/lib/bootstrap"; import App from "./App"; @@ -11,6 +12,8 @@ import localesData from "./locales"; import "coral-ui/theme/variables.css"; async function main() { + // Potentially inject react-axe for runtime a11y checks. + await potentiallyInjectAxe(); const ManagedCoralContextProvider = await createManaged({ initLocalState, localesData, diff --git a/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap index 04623482e..7e7bd3fe8 100644 --- a/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap @@ -352,15 +352,15 @@ exports[`renders addEmailAddress view 1`] = `
-
+

Add Email Address

-
+
-
@@ -513,7 +513,7 @@ Your email address will be used to:
- + diff --git a/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap index e636685ba..1cb265bad 100644 --- a/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap @@ -108,15 +108,15 @@ exports[`renders createPassword view 1`] = `
-
+

Create Password

-
+
-
@@ -203,7 +203,7 @@ we require users to create a password.
- + diff --git a/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap index bcdbbb6d3..a0828ef8c 100644 --- a/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap @@ -84,15 +84,15 @@ exports[`renders createUsername view 1`] = `
-
+

Create Username

-
+
-
@@ -155,7 +155,7 @@ exports[`renders createUsername view 1`] = `
- + diff --git a/src/core/client/auth/test/__snapshots__/forgotPassword.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/forgotPassword.spec.tsx.snap index 5d70b5d3d..76f7fa9c8 100644 --- a/src/core/client/auth/test/__snapshots__/forgotPassword.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/forgotPassword.spec.tsx.snap @@ -9,18 +9,18 @@ exports[`renders forgot password view 1`] = `
-
+

Forgot Password?

-
+
-
+
+
-
@@ -93,7 +93,7 @@ reset your password.
- + diff --git a/src/core/client/auth/test/__snapshots__/signIn.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/signIn.spec.tsx.snap index 7eb8169e6..60d85b0c2 100644 --- a/src/core/client/auth/test/__snapshots__/signIn.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/signIn.spec.tsx.snap @@ -275,7 +275,7 @@ exports[`accepts valid email 1`] = ` `; exports[`auth configuration renders all auth enabled 1`] = ` -
@@ -492,11 +492,11 @@ exports[`auth configuration renders all auth enabled 1`] = `
- + `; exports[`auth configuration renders only some social login enabled 1`] = ` -
@@ -564,7 +564,7 @@ exports[`auth configuration renders only some social login enabled 1`] = `
- + `; exports[`checks for invalid email 1`] = ` @@ -726,7 +726,7 @@ exports[`renders sign in view 1`] = `
-
+

@@ -737,12 +737,12 @@ exports[`renders sign in view 1`] = ` > to join the conversation

-
+
-
+
+
-
@@ -891,7 +891,7 @@ exports[`renders sign in view 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + @@ -904,7 +904,7 @@ exports[`renders sign in view with error 1`] = `
-
+

@@ -915,12 +915,12 @@ exports[`renders sign in view with error 1`] = ` > to join the conversation

-
+
-
+
+
-
@@ -1076,7 +1076,7 @@ exports[`renders sign in view with error 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; diff --git a/src/core/client/auth/test/__snapshots__/signUp.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/signUp.spec.tsx.snap index 3a7ecc9e0..5cbb89693 100644 --- a/src/core/client/auth/test/__snapshots__/signUp.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/signUp.spec.tsx.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`accepts correct password 1`] = ` -
@@ -180,11 +180,11 @@ exports[`accepts correct password 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`accepts valid email 1`] = ` -
@@ -363,11 +363,11 @@ exports[`accepts valid email 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`accepts valid username 1`] = ` -
@@ -546,11 +546,11 @@ exports[`accepts valid username 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`auth configuration renders all auth enabled 1`] = ` -
@@ -788,11 +788,11 @@ exports[`auth configuration renders all auth enabled 1`] = `
- + `; exports[`auth configuration renders only some social login enabled 1`] = ` -
@@ -860,11 +860,11 @@ exports[`auth configuration renders only some social login enabled 1`] = `
- + `; exports[`checks for invalid characters in username 1`] = ` -
@@ -1056,11 +1056,11 @@ exports[`checks for invalid characters in username 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`checks for invalid email 1`] = ` -
@@ -1252,11 +1252,11 @@ exports[`checks for invalid email 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`checks for too long username 1`] = ` -
@@ -1448,11 +1448,11 @@ exports[`checks for too long username 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`checks for too short password 1`] = ` -
@@ -1644,11 +1644,11 @@ exports[`checks for too short password 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`checks for too short username 1`] = ` -
@@ -1840,7 +1840,7 @@ exports[`checks for too short username 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`renders sign up form 1`] = ` @@ -1852,7 +1852,7 @@ exports[`renders sign up form 1`] = `
-
+

@@ -1863,12 +1863,12 @@ exports[`renders sign up form 1`] = ` > to join the conversation

-
+
-
+
+
-
@@ -2038,14 +2038,14 @@ exports[`renders sign up form 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`shows error when submitting empty form 1`] = ` -
@@ -2237,11 +2237,11 @@ exports[`shows error when submitting empty form 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`shows server error 1`] = ` -
@@ -2401,11 +2401,11 @@ exports[`shows server error 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; exports[`submits form successfully 1`] = ` -
@@ -2558,5 +2558,5 @@ exports[`submits form successfully 1`] = ` className="Box-root HorizontalGutter-root HorizontalGutter-full" />
- + `; diff --git a/src/core/client/count/index.html b/src/core/client/count/index.html index f69377825..ad987ecfd 100644 --- a/src/core/client/count/index.html +++ b/src/core/client/count/index.html @@ -4,7 +4,7 @@ Coral - Count - + diff --git a/src/core/client/embed/index.html b/src/core/client/embed/index.html index 3bd2327e9..838c62c34 100644 --- a/src/core/client/embed/index.html +++ b/src/core/client/embed/index.html @@ -4,7 +4,7 @@ Coral 5.0 – Embed Stream - +