mirror of
https://github.com/wassname/talk.git
synced 2026-08-01 13:00:55 +08:00
[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
This commit is contained in:
Generated
+41
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral - Account</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -3,8 +3,10 @@ import React, { FunctionComponent } from "react";
|
||||
import { HorizontalGutter, Typography } from "coral-ui/components";
|
||||
|
||||
const NotFound: FunctionComponent = () => (
|
||||
<HorizontalGutter>
|
||||
<Typography variant="heading3">Not Found</Typography>
|
||||
<HorizontalGutter container="main">
|
||||
<Typography variant="heading3" container="h1">
|
||||
Not Found
|
||||
</Typography>
|
||||
</HorizontalGutter>
|
||||
);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ const DownloadDescription: FunctionComponent = () => {
|
||||
return (
|
||||
<HorizontalGutter size="double">
|
||||
<Localized id="download-landingPage-title">
|
||||
<div className={styles.title}>Download Your Comment History</div>
|
||||
<h1 className={styles.title}>Download Your Comment History</h1>
|
||||
</Localized>
|
||||
<div className={styles.content}>
|
||||
<div className={styles.section}>
|
||||
|
||||
@@ -32,35 +32,35 @@ const DownloadRoute: FunctionComponent<Props> = ({ token }) => {
|
||||
|
||||
if (state === "UNCHECKED") {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<HorizontalGutter size="double">
|
||||
<Loading />
|
||||
</HorizontalGutter>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
if (state !== "VALID" || error) {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<HorizontalGutter size="double">
|
||||
<DownloadDescription />
|
||||
<Sorry />
|
||||
</HorizontalGutter>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<DownloadDescription />
|
||||
<DownloadForm token={token!} />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -35,36 +35,36 @@ const ConfirmRoute: React.FunctionComponent<Props> = ({ token }) => {
|
||||
|
||||
if (state === "UNCHECKED") {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Loading />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
if (state !== "VALID" || error) {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Sorry reason={error} />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
return !finished ? (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<ConfirmForm token={token!} onSuccess={onSuccess} />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
) : (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Success />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -35,36 +35,36 @@ const UnsubscribeRoute: React.FunctionComponent<Props> = ({ token }) => {
|
||||
|
||||
if (state === "UNCHECKED") {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Loading />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
if (state !== "VALID" || error) {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Sorry reason={error} />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
return !finished ? (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<UnsubscribeForm token={token!} onSuccess={onSuccess} />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
) : (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Success />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -35,36 +35,36 @@ const ResetRoute: React.FunctionComponent<Props> = ({ token }) => {
|
||||
|
||||
if (state === "UNCHECKED") {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Loading />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
if (state !== "VALID" || error) {
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Sorry reason={error} />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
return !finished ? (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<ResetPasswordForm token={token!} onSuccess={onSuccess} />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
) : (
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<div className={styles.root}>
|
||||
<Success />
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ exports[`renders form 1`] = `
|
||||
<div
|
||||
className="MainLayout-centered"
|
||||
>
|
||||
<div
|
||||
<main
|
||||
className="ConfirmRoute-container"
|
||||
>
|
||||
<div
|
||||
@@ -58,7 +58,7 @@ exports[`renders form 1`] = `
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
@@ -73,7 +73,7 @@ exports[`renders missing confirm token 1`] = `
|
||||
<div
|
||||
className="MainLayout-centered"
|
||||
>
|
||||
<div
|
||||
<main
|
||||
className="ConfirmRoute-container"
|
||||
>
|
||||
<div
|
||||
@@ -100,7 +100,7 @@ exports[`renders missing confirm token 1`] = `
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -10,7 +10,7 @@ exports[`renders form 1`] = `
|
||||
<div
|
||||
className="MainLayout-centered"
|
||||
>
|
||||
<div
|
||||
<main
|
||||
className="ResetRoute-container"
|
||||
>
|
||||
<div
|
||||
@@ -115,7 +115,7 @@ Make sure it is unique and be sure to keep it secure.
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
@@ -130,7 +130,7 @@ exports[`renders missing reset token 1`] = `
|
||||
<div
|
||||
className="MainLayout-centered"
|
||||
>
|
||||
<div
|
||||
<main
|
||||
className="ResetRoute-container"
|
||||
>
|
||||
<div
|
||||
@@ -157,7 +157,7 @@ exports[`renders missing reset token 1`] = `
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -10,7 +10,7 @@ exports[`renders form 1`] = `
|
||||
<div
|
||||
className="MainLayout-centered"
|
||||
>
|
||||
<div
|
||||
<main
|
||||
className="UnsubscribeRoute-container"
|
||||
>
|
||||
<div
|
||||
@@ -48,7 +48,7 @@ exports[`renders form 1`] = `
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
@@ -63,7 +63,7 @@ exports[`renders missing confirm token 1`] = `
|
||||
<div
|
||||
className="MainLayout-centered"
|
||||
>
|
||||
<div
|
||||
<main
|
||||
className="UnsubscribeRoute-container"
|
||||
>
|
||||
<div
|
||||
@@ -90,7 +90,7 @@ exports[`renders missing confirm token 1`] = `
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral - Admin</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral - Auth Callback</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
|
||||
<body></body>
|
||||
|
||||
@@ -10,7 +10,7 @@ export interface BarProps {
|
||||
|
||||
const Bar: FunctionComponent<BarProps> = props => (
|
||||
<Flex className={styles.root} alignItems="center" justifyContent="center">
|
||||
<div>{props.children}</div>
|
||||
<header>{props.children}</header>
|
||||
</Flex>
|
||||
);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ export interface SubBarProps {
|
||||
|
||||
const SubBar: FunctionComponent<SubBarProps> = props => (
|
||||
<Flex className={styles.root} alignItems="center" justifyContent="center">
|
||||
<div>{props.children}</div>
|
||||
<nav>{props.children}</nav>
|
||||
</Flex>
|
||||
);
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ exports[`renders correctly 1`] = `
|
||||
className="Bar-root"
|
||||
justifyContent="center"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
Hello World
|
||||
</div>
|
||||
</header>
|
||||
</ForwardRef(forwardRef)>
|
||||
`;
|
||||
|
||||
@@ -6,8 +6,8 @@ exports[`renders correctly 1`] = `
|
||||
className="SubBar-root"
|
||||
justifyContent="center"
|
||||
>
|
||||
<div>
|
||||
<nav>
|
||||
Hello World
|
||||
</div>
|
||||
</nav>
|
||||
</ForwardRef(forwardRef)>
|
||||
`;
|
||||
|
||||
@@ -13,9 +13,9 @@ const Main: FunctionComponent<MainProps> = ({
|
||||
className,
|
||||
...rest
|
||||
}) => (
|
||||
<div {...rest} className={cn(styles.root, className)}>
|
||||
<main {...rest} className={cn(styles.root, className)}>
|
||||
{children}
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
|
||||
export default Main;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`renders correctly 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
>
|
||||
Hello World
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
@@ -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<NodeJS.Timer | null>(null);
|
||||
const pollTimeout = useRef<any>();
|
||||
|
||||
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();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral - Auth</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -352,15 +352,15 @@ exports[`renders addEmailAddress view 1`] = `
|
||||
<div
|
||||
className="Box-root Flex-root Bar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextPrimary Typography-alignCenter Title-root"
|
||||
>
|
||||
Add Email Address
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="addEmailAddress-main"
|
||||
>
|
||||
@@ -513,7 +513,7 @@ Your email address will be used to:
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -108,15 +108,15 @@ exports[`renders createPassword view 1`] = `
|
||||
<div
|
||||
className="Box-root Flex-root Bar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextPrimary Typography-alignCenter Title-root"
|
||||
>
|
||||
Create Password
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="createPassword-main"
|
||||
>
|
||||
@@ -203,7 +203,7 @@ we require users to create a password.
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -84,15 +84,15 @@ exports[`renders createUsername view 1`] = `
|
||||
<div
|
||||
className="Box-root Flex-root Bar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextPrimary Typography-alignCenter Title-root"
|
||||
>
|
||||
Create Username
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="createUsername-main"
|
||||
>
|
||||
@@ -155,7 +155,7 @@ exports[`renders createUsername view 1`] = `
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,18 +9,18 @@ exports[`renders forgot password view 1`] = `
|
||||
<div
|
||||
className="Box-root Flex-root Bar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextPrimary Typography-alignCenter Title-root"
|
||||
>
|
||||
Forgot Password?
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root SubBar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<nav>
|
||||
<div
|
||||
className="Box-root Flex-root Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary Flex-flex"
|
||||
>
|
||||
@@ -32,9 +32,9 @@ exports[`renders forgot password view 1`] = `
|
||||
Go back to sign in page
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="forgotPassword-main"
|
||||
>
|
||||
@@ -93,7 +93,7 @@ reset your password.
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -275,7 +275,7 @@ exports[`accepts valid email 1`] = `
|
||||
`;
|
||||
|
||||
exports[`auth configuration renders all auth enabled 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signIn-main"
|
||||
>
|
||||
@@ -492,11 +492,11 @@ exports[`auth configuration renders all auth enabled 1`] = `
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`auth configuration renders only some social login enabled 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signIn-main"
|
||||
>
|
||||
@@ -564,7 +564,7 @@ exports[`auth configuration renders only some social login enabled 1`] = `
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`checks for invalid email 1`] = `
|
||||
@@ -726,7 +726,7 @@ exports[`renders sign in view 1`] = `
|
||||
<div
|
||||
className="Box-root Flex-root Bar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextPrimary Typography-alignCenter Title-root"
|
||||
>
|
||||
@@ -737,12 +737,12 @@ exports[`renders sign in view 1`] = `
|
||||
>
|
||||
to join the conversation
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root SubBar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<nav>
|
||||
<div
|
||||
className="Box-root Flex-root Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary Flex-flex"
|
||||
>
|
||||
@@ -757,9 +757,9 @@ exports[`renders sign in view 1`] = `
|
||||
Sign Up
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signIn-main"
|
||||
>
|
||||
@@ -891,7 +891,7 @@ exports[`renders sign in view 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -904,7 +904,7 @@ exports[`renders sign in view with error 1`] = `
|
||||
<div
|
||||
className="Box-root Flex-root Bar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextPrimary Typography-alignCenter Title-root"
|
||||
>
|
||||
@@ -915,12 +915,12 @@ exports[`renders sign in view with error 1`] = `
|
||||
>
|
||||
to join the conversation
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root SubBar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<nav>
|
||||
<div
|
||||
className="Box-root Flex-root Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary Flex-flex"
|
||||
>
|
||||
@@ -935,9 +935,9 @@ exports[`renders sign in view with error 1`] = `
|
||||
Sign Up
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signIn-main"
|
||||
>
|
||||
@@ -1076,7 +1076,7 @@ exports[`renders sign in view with error 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
`;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`accepts correct password 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -180,11 +180,11 @@ exports[`accepts correct password 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`accepts valid email 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -363,11 +363,11 @@ exports[`accepts valid email 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`accepts valid username 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -546,11 +546,11 @@ exports[`accepts valid username 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`auth configuration renders all auth enabled 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -788,11 +788,11 @@ exports[`auth configuration renders all auth enabled 1`] = `
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`auth configuration renders only some social login enabled 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -860,11 +860,11 @@ exports[`auth configuration renders only some social login enabled 1`] = `
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`checks for invalid characters in username 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -1056,11 +1056,11 @@ exports[`checks for invalid characters in username 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`checks for invalid email 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -1252,11 +1252,11 @@ exports[`checks for invalid email 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`checks for too long username 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -1448,11 +1448,11 @@ exports[`checks for too long username 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`checks for too short password 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -1644,11 +1644,11 @@ exports[`checks for too short password 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`checks for too short username 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -1840,7 +1840,7 @@ exports[`checks for too short username 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`renders sign up form 1`] = `
|
||||
@@ -1852,7 +1852,7 @@ exports[`renders sign up form 1`] = `
|
||||
<div
|
||||
className="Box-root Flex-root Bar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<header>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextPrimary Typography-alignCenter Title-root"
|
||||
>
|
||||
@@ -1863,12 +1863,12 @@ exports[`renders sign up form 1`] = `
|
||||
>
|
||||
to join the conversation
|
||||
</h1>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root SubBar-root Flex-flex Flex-justifyCenter Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<nav>
|
||||
<div
|
||||
className="Box-root Flex-root Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary Flex-flex"
|
||||
>
|
||||
@@ -1883,9 +1883,9 @@ exports[`renders sign up form 1`] = `
|
||||
Sign In
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -2038,14 +2038,14 @@ exports[`renders sign up form 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`shows error when submitting empty form 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -2237,11 +2237,11 @@ exports[`shows error when submitting empty form 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`shows server error 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -2401,11 +2401,11 @@ exports[`shows server error 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`submits form successfully 1`] = `
|
||||
<div
|
||||
<main
|
||||
className="Main-root"
|
||||
data-testid="signUp-main"
|
||||
>
|
||||
@@ -2558,5 +2558,5 @@ exports[`submits form successfully 1`] = `
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral - Count</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="canonical" href="http://localhost:8080/" />
|
||||
</head>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral 5.0 – Embed Stream</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
import bowser from "bowser";
|
||||
import React from "react";
|
||||
import ReactDOM from "react-dom";
|
||||
|
||||
import { parseQuery } from "coral-common/utils";
|
||||
import { areWeInIframe } from "coral-framework/utils";
|
||||
|
||||
function extractQuery(href: string) {
|
||||
const query = href.split("?")[1];
|
||||
if (!query) {
|
||||
return null;
|
||||
}
|
||||
// Remove hash and return.
|
||||
return query.split("#")[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Injects react-axe for runtime a11y checks under certain conditions:
|
||||
* - During development
|
||||
* - Not on mobile
|
||||
* - `axe` has been added to the url query.
|
||||
*
|
||||
* @param href url to check for the `axe` property.
|
||||
*/
|
||||
export default async function potentiallyInjectAxe(
|
||||
href = window.location.href
|
||||
) {
|
||||
if (process.env.NODE_ENV !== "development" || bowser.mobile) {
|
||||
// Only in development and skip mobile as it doesn't work there.
|
||||
return;
|
||||
}
|
||||
const query = extractQuery(href);
|
||||
if (!query || !("axe" in parseQuery(query))) {
|
||||
// Because axe slows down React rendering considerably it is
|
||||
// only included when "axe" is set in the url query.
|
||||
return;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.log("Injecting react-axe");
|
||||
const axe = (await import("react-axe")).default;
|
||||
axe(React, ReactDOM, 1000, {
|
||||
rules: [
|
||||
{
|
||||
id: "page-has-heading-one",
|
||||
enabled: !areWeInIframe(),
|
||||
},
|
||||
{
|
||||
id: "html-has-lang",
|
||||
// This is injected by the server and irrelevant during development.
|
||||
enabled: false,
|
||||
},
|
||||
{
|
||||
id: "label",
|
||||
// TODO: The Markdown Editor uses CodeMirror which does not fully comply to a11y yet,
|
||||
// this would hide the error.
|
||||
// selector:
|
||||
// 'input, select, textarea:not([style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"])',
|
||||
},
|
||||
],
|
||||
});
|
||||
}
|
||||
@@ -39,9 +39,9 @@ const App: FunctionComponent = () => {
|
||||
return (
|
||||
<div className={styles.root}>
|
||||
<MainBar />
|
||||
<div className={styles.container}>
|
||||
<main className={styles.container}>
|
||||
<AppState state={state} error={error} />
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -6,13 +6,13 @@ import styles from "./MainBar.css";
|
||||
|
||||
const MainBar = () => {
|
||||
return (
|
||||
<div className={styles.root}>
|
||||
<header className={styles.root}>
|
||||
<div className={styles.container}>
|
||||
<Typography variant="heading1" className={styles.title}>
|
||||
Coral
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -5,13 +5,13 @@ exports[`renders correctly 1`] = `
|
||||
className="App-root"
|
||||
>
|
||||
<MainBar />
|
||||
<div
|
||||
<main
|
||||
className="App-container"
|
||||
>
|
||||
<AppState
|
||||
error={null}
|
||||
state="loading"
|
||||
/>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -83,7 +83,9 @@ class AddOrganizationStep extends React.Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-addOrganization-orgName">
|
||||
<InputLabel>Organization Name</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Organization Name
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized
|
||||
id="install-addOrganization-orgNameTextField"
|
||||
@@ -94,6 +96,7 @@ class AddOrganizationStep extends React.Component<Props> {
|
||||
color={colorFromMeta(meta)}
|
||||
disabled={submitting}
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
@@ -109,7 +112,9 @@ class AddOrganizationStep extends React.Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-addOrganization-orgEmail">
|
||||
<InputLabel>Organization Contact Email</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Organization Contact Email
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized
|
||||
id="install-addOrganization-orgEmailTextField"
|
||||
@@ -123,6 +128,7 @@ class AddOrganizationStep extends React.Component<Props> {
|
||||
autoCapitalize="off"
|
||||
autoCorrect="off"
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
@@ -138,7 +144,9 @@ class AddOrganizationStep extends React.Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-addOrganization-orgURL">
|
||||
<InputLabel>Organization URL</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Organization URL
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized
|
||||
id="install-addOrganization-orgURLDescription"
|
||||
@@ -159,6 +167,7 @@ class AddOrganizationStep extends React.Component<Props> {
|
||||
color={colorFromMeta(meta)}
|
||||
disabled={submitting}
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
|
||||
@@ -79,7 +79,9 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-createYourAccount-email">
|
||||
<InputLabel>Email</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Email
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized
|
||||
id="install-createYourAccount-emailTextField"
|
||||
@@ -93,6 +95,7 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
autoCapitalize="off"
|
||||
autoCorrect="off"
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
@@ -108,7 +111,9 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-createYourAccount-username">
|
||||
<InputLabel>Username</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Username
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized id="install-createYourAccount-usernameDescription">
|
||||
<InputDescription>
|
||||
@@ -127,6 +132,7 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
autoCapitalize="off"
|
||||
autoCorrect="off"
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
@@ -142,7 +148,9 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-createYourAccount-password">
|
||||
<InputLabel>Password</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Password
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized id="install-createYourAccount-passwordDescription">
|
||||
<InputDescription>
|
||||
@@ -159,6 +167,7 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
color={colorFromMeta(meta)}
|
||||
disabled={submitting}
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
@@ -174,7 +183,9 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-createYourAccount-confirmPassword">
|
||||
<InputLabel>Confirm Password</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Confirm Password
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized
|
||||
id="install-createYourAccount-confirmPasswordTextField"
|
||||
@@ -186,6 +197,7 @@ class CreateYourAccountStep extends Component<Props> {
|
||||
color={colorFromMeta(meta)}
|
||||
disabled={submitting}
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
|
||||
@@ -85,7 +85,9 @@ class PermittedDomainsStep extends Component<Props> {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-permittedDomains-permittedDomains">
|
||||
<InputLabel>Permitted Domains</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Permitted Domains
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<Localized id="install-permittedDomains-permittedDomainsDescription">
|
||||
<InputDescription>
|
||||
@@ -101,6 +103,7 @@ class PermittedDomainsStep extends Component<Props> {
|
||||
color={colorFromMeta(meta)}
|
||||
disabled={submitting}
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
</Localized>
|
||||
|
||||
@@ -73,9 +73,16 @@ const SelectLanguageStep: FunctionComponent<Props> = props => {
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="install-selectLanguage-language">
|
||||
<InputLabel>Language</InputLabel>
|
||||
<InputLabel container={<label htmlFor={input.name} />}>
|
||||
Language
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<LocaleField disabled={submitting} fullWidth {...input} />
|
||||
<LocaleField
|
||||
disabled={submitting}
|
||||
fullWidth
|
||||
id={input.name}
|
||||
{...input}
|
||||
/>
|
||||
<ValidationMessage meta={meta} fullWidth />
|
||||
</FormField>
|
||||
)}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral - Install</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -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({
|
||||
localesData,
|
||||
initLocalState,
|
||||
|
||||
@@ -2,7 +2,12 @@ import cn from "classnames";
|
||||
import React, { FunctionComponent } from "react";
|
||||
|
||||
import CLASSES from "coral-stream/classes";
|
||||
import { HorizontalGutter, TabContent, TabPane } from "coral-ui/components";
|
||||
import {
|
||||
AriaInfo,
|
||||
HorizontalGutter,
|
||||
TabContent,
|
||||
TabPane,
|
||||
} from "coral-ui/components";
|
||||
|
||||
import Comments from "../tabs/Comments";
|
||||
import Configure from "../tabs/Configure";
|
||||
@@ -20,30 +25,35 @@ export interface AppProps {
|
||||
const App: FunctionComponent<AppProps> = props => {
|
||||
return (
|
||||
<HorizontalGutter className={cn(CLASSES.app, styles.root)}>
|
||||
<TabBarQuery />
|
||||
<TabContent activeTab={props.activeTab} className={styles.tabContent}>
|
||||
<TabPane
|
||||
className={CLASSES.commentsTabPane.$root}
|
||||
tabID="COMMENTS"
|
||||
data-testid="current-tab-pane"
|
||||
>
|
||||
<Comments />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className={CLASSES.myProfileTabPane.$root}
|
||||
tabID="PROFILE"
|
||||
data-testid="current-tab-pane"
|
||||
>
|
||||
<Profile />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className={CLASSES.configureTabPane.$root}
|
||||
tabID="CONFIGURE"
|
||||
data-testid="current-tab-pane"
|
||||
>
|
||||
<Configure />
|
||||
</TabPane>
|
||||
</TabContent>
|
||||
<nav>
|
||||
<AriaInfo component="h2">Navigation</AriaInfo>
|
||||
<TabBarQuery />
|
||||
</nav>
|
||||
<main>
|
||||
<TabContent activeTab={props.activeTab} className={styles.tabContent}>
|
||||
<TabPane
|
||||
className={CLASSES.commentsTabPane.$root}
|
||||
tabID="COMMENTS"
|
||||
data-testid="current-tab-pane"
|
||||
>
|
||||
<Comments />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className={CLASSES.myProfileTabPane.$root}
|
||||
tabID="PROFILE"
|
||||
data-testid="current-tab-pane"
|
||||
>
|
||||
<Profile />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className={CLASSES.configureTabPane.$root}
|
||||
tabID="CONFIGURE"
|
||||
data-testid="current-tab-pane"
|
||||
>
|
||||
<Configure />
|
||||
</TabPane>
|
||||
</TabContent>
|
||||
</main>
|
||||
</HorizontalGutter>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -4,32 +4,41 @@ exports[`renders correctly 1`] = `
|
||||
<ForwardRef(forwardRef)
|
||||
className="coral coral-stream App-root"
|
||||
>
|
||||
<withContext(withLocalStateContainer(TabBarQuery)) />
|
||||
<TabContent
|
||||
activeTab="COMMENTS"
|
||||
className="App-tabContent"
|
||||
>
|
||||
<TabPane
|
||||
className="coral coral-comments"
|
||||
data-testid="current-tab-pane"
|
||||
tabID="COMMENTS"
|
||||
<nav>
|
||||
<ForwardRef(forwardRef)
|
||||
component="h2"
|
||||
>
|
||||
<CommentsPane />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className="coral coral-myProfile"
|
||||
data-testid="current-tab-pane"
|
||||
tabID="PROFILE"
|
||||
Navigation
|
||||
</ForwardRef(forwardRef)>
|
||||
<withContext(withLocalStateContainer(TabBarQuery)) />
|
||||
</nav>
|
||||
<main>
|
||||
<TabContent
|
||||
activeTab="COMMENTS"
|
||||
className="App-tabContent"
|
||||
>
|
||||
<withContext(withLocalStateContainer(ProfileQuery)) />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className="coral coral-configure"
|
||||
data-testid="current-tab-pane"
|
||||
tabID="CONFIGURE"
|
||||
>
|
||||
<withContext(withLocalStateContainer(ConfigureQuery)) />
|
||||
</TabPane>
|
||||
</TabContent>
|
||||
<TabPane
|
||||
className="coral coral-comments"
|
||||
data-testid="current-tab-pane"
|
||||
tabID="COMMENTS"
|
||||
>
|
||||
<CommentsPane />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className="coral coral-myProfile"
|
||||
data-testid="current-tab-pane"
|
||||
tabID="PROFILE"
|
||||
>
|
||||
<withContext(withLocalStateContainer(ProfileQuery)) />
|
||||
</TabPane>
|
||||
<TabPane
|
||||
className="coral coral-configure"
|
||||
data-testid="current-tab-pane"
|
||||
tabID="CONFIGURE"
|
||||
>
|
||||
<withContext(withLocalStateContainer(ConfigureQuery)) />
|
||||
</TabPane>
|
||||
</TabContent>
|
||||
</main>
|
||||
</ForwardRef(forwardRef)>
|
||||
`;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<title>Coral - Stream</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Child as PymChild } from "pym.js";
|
||||
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 AppContainer from "./App";
|
||||
@@ -12,12 +13,15 @@ import localesData from "./locales";
|
||||
import "coral-ui/theme/variables.css";
|
||||
|
||||
async function main() {
|
||||
const pym = new PymChild({
|
||||
polling: 100,
|
||||
});
|
||||
// Potentially inject react-axe for runtime a11y checks.
|
||||
await potentiallyInjectAxe(pym.parentUrl);
|
||||
const ManagedCoralContextProvider = await createManaged({
|
||||
initLocalState,
|
||||
localesData,
|
||||
pym: new PymChild({
|
||||
polling: 100,
|
||||
}),
|
||||
pym,
|
||||
});
|
||||
|
||||
const Index: FunctionComponent = () => (
|
||||
|
||||
@@ -270,8 +270,8 @@ export class CommentContainer extends Component<Props, State> {
|
||||
<>
|
||||
<UsernameWithPopoverContainer
|
||||
className={CLASSES.comment.topBar.username}
|
||||
comment={comment}
|
||||
viewer={viewer}
|
||||
user={comment.author}
|
||||
/>
|
||||
<UserTagsContainer
|
||||
className={CLASSES.comment.topBar.userTag}
|
||||
@@ -426,7 +426,6 @@ const enhanced = withContext(({ eventEmitter }) => ({ eventEmitter }))(
|
||||
fragment CommentContainer_comment on Comment {
|
||||
id
|
||||
author {
|
||||
...UsernameWithPopoverContainer_user
|
||||
id
|
||||
username
|
||||
}
|
||||
@@ -456,6 +455,7 @@ const enhanced = withContext(({ eventEmitter }) => ({ eventEmitter }))(
|
||||
...RejectedTombstoneContainer_comment
|
||||
...AuthorBadgesContainer_comment
|
||||
...UserTagsContainer_comment
|
||||
...UsernameWithPopoverContainer_comment
|
||||
}
|
||||
`,
|
||||
settings: graphql`
|
||||
|
||||
@@ -22,7 +22,7 @@ interface Props {
|
||||
}
|
||||
|
||||
const CaretContainer: FunctionComponent<Props> = props => {
|
||||
const popoverID = `comments-moderationMenu`;
|
||||
const popoverID = `comments-moderationMenu-${props.comment.id}`;
|
||||
return (
|
||||
<Localized
|
||||
id="comments-moderationDropdown-popover"
|
||||
@@ -71,6 +71,7 @@ const CaretContainer: FunctionComponent<Props> = props => {
|
||||
const enhanced = withFragmentContainer<Props>({
|
||||
comment: graphql`
|
||||
fragment CaretContainer_comment on Comment {
|
||||
id
|
||||
...ModerationDropdownContainer_comment
|
||||
}
|
||||
`,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import cn from "classnames";
|
||||
import { Localized } from "fluent-react/compat";
|
||||
import React, { FunctionComponent, useCallback, useEffect } from "react";
|
||||
|
||||
import { CopyButton } from "coral-framework/components";
|
||||
@@ -33,11 +34,17 @@ const PermalinkPopover: FunctionComponent<Props> = ({
|
||||
itemGutter="half"
|
||||
className={cn(styles.root, CLASSES.sharePopover.$root)}
|
||||
>
|
||||
<TextField
|
||||
defaultValue={permalinkURL}
|
||||
className={styles.textField}
|
||||
readOnly
|
||||
/>
|
||||
<Localized
|
||||
id="comments-permalinkPopover-permalinkToComment"
|
||||
attrs={{ "aria-label": true }}
|
||||
>
|
||||
<TextField
|
||||
defaultValue={permalinkURL}
|
||||
className={styles.textField}
|
||||
aria-label="Permalink to button"
|
||||
readOnly
|
||||
/>
|
||||
</Localized>
|
||||
<CopyButton
|
||||
onClick={onButtonClick}
|
||||
text={permalinkURL}
|
||||
|
||||
+18
-11
@@ -5,20 +5,23 @@ import { graphql } from "react-relay";
|
||||
import { withFragmentContainer } from "coral-framework/lib/relay";
|
||||
import { BaseButton, ClickOutside, Popover } from "coral-ui/components";
|
||||
|
||||
import { UsernameWithPopoverContainer_user as UserData } from "coral-stream/__generated__/UsernameWithPopoverContainer_user.graphql";
|
||||
import { UsernameWithPopoverContainer_viewer as ViewerData } from "coral-stream/__generated__/UsernameWithPopoverContainer_viewer.graphql";
|
||||
import { UsernameWithPopoverContainer_comment } from "coral-stream/__generated__/UsernameWithPopoverContainer_comment.graphql";
|
||||
import { UsernameWithPopoverContainer_viewer } from "coral-stream/__generated__/UsernameWithPopoverContainer_viewer.graphql";
|
||||
|
||||
import UserPopoverContainer from "../UserPopover";
|
||||
import Username from "./Username";
|
||||
|
||||
interface Props {
|
||||
user: UserData;
|
||||
viewer: ViewerData | null;
|
||||
comment: UsernameWithPopoverContainer_comment;
|
||||
viewer: UsernameWithPopoverContainer_viewer | null;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
const UsernameWithPopoverContainer: FunctionComponent<Props> = props => {
|
||||
const popoverID = `username-popover`;
|
||||
const popoverID = `username-popover-${props.comment.id}`;
|
||||
if (!props.comment.author) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
<Localized id="comments-userPopover" attrs={{ description: true }}>
|
||||
<Popover
|
||||
@@ -28,7 +31,7 @@ const UsernameWithPopoverContainer: FunctionComponent<Props> = props => {
|
||||
body={({ toggleVisibility }) => (
|
||||
<ClickOutside onClickOutside={toggleVisibility}>
|
||||
<UserPopoverContainer
|
||||
user={props.user}
|
||||
user={props.comment.author!}
|
||||
viewer={props.viewer}
|
||||
onDismiss={toggleVisibility}
|
||||
/>
|
||||
@@ -42,7 +45,7 @@ const UsernameWithPopoverContainer: FunctionComponent<Props> = props => {
|
||||
ref={ref}
|
||||
className={props.className}
|
||||
>
|
||||
<Username>{props.user.username}</Username>
|
||||
<Username>{props.comment.author!.username}</Username>
|
||||
</BaseButton>
|
||||
)}
|
||||
</Popover>
|
||||
@@ -56,10 +59,14 @@ const enhanced = withFragmentContainer<Props>({
|
||||
...UserPopoverContainer_viewer
|
||||
}
|
||||
`,
|
||||
user: graphql`
|
||||
fragment UsernameWithPopoverContainer_user on User {
|
||||
username
|
||||
...UserPopoverContainer_user
|
||||
comment: graphql`
|
||||
fragment UsernameWithPopoverContainer_comment on Comment {
|
||||
id
|
||||
author {
|
||||
id
|
||||
username
|
||||
...UserPopoverContainer_user
|
||||
}
|
||||
}
|
||||
`,
|
||||
})(UsernameWithPopoverContainer);
|
||||
|
||||
+137
-28
@@ -110,11 +110,26 @@ exports[`hide reply button 1`] = `
|
||||
<React.Fragment>
|
||||
<Relay(UsernameWithPopoverContainer)
|
||||
className="coral coral-username coral-comment-username"
|
||||
user={
|
||||
comment={
|
||||
Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
"author": Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
},
|
||||
"body": "Woof",
|
||||
"createdAt": "1995-12-17T03:24:00.000Z",
|
||||
"deleted": false,
|
||||
"editing": Object {
|
||||
"editableUntil": "1995-12-17T03:24:30.000Z",
|
||||
"edited": false,
|
||||
},
|
||||
"id": "comment-id",
|
||||
"lastViewerAction": null,
|
||||
"parent": null,
|
||||
"pending": false,
|
||||
"status": "NONE",
|
||||
"tags": Array [],
|
||||
}
|
||||
}
|
||||
viewer={null}
|
||||
@@ -300,11 +315,26 @@ exports[`renders body only 1`] = `
|
||||
<React.Fragment>
|
||||
<Relay(UsernameWithPopoverContainer)
|
||||
className="coral coral-username coral-comment-username"
|
||||
user={
|
||||
comment={
|
||||
Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": null,
|
||||
"author": Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": null,
|
||||
},
|
||||
"body": "Woof",
|
||||
"createdAt": "1995-12-17T03:24:00.000Z",
|
||||
"deleted": false,
|
||||
"editing": Object {
|
||||
"editableUntil": "1995-12-17T03:24:30.000Z",
|
||||
"edited": false,
|
||||
},
|
||||
"id": "comment-id",
|
||||
"lastViewerAction": null,
|
||||
"parent": null,
|
||||
"pending": false,
|
||||
"status": "NONE",
|
||||
"tags": Array [],
|
||||
}
|
||||
}
|
||||
viewer={null}
|
||||
@@ -490,11 +520,26 @@ exports[`renders disabled reply when commenting has been disabled 1`] = `
|
||||
<React.Fragment>
|
||||
<Relay(UsernameWithPopoverContainer)
|
||||
className="coral coral-username coral-comment-username"
|
||||
user={
|
||||
comment={
|
||||
Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
"author": Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
},
|
||||
"body": "Woof",
|
||||
"createdAt": "1995-12-17T03:24:00.000Z",
|
||||
"deleted": false,
|
||||
"editing": Object {
|
||||
"editableUntil": "1995-12-17T03:24:30.000Z",
|
||||
"edited": false,
|
||||
},
|
||||
"id": "comment-id",
|
||||
"lastViewerAction": null,
|
||||
"parent": null,
|
||||
"pending": false,
|
||||
"status": "NONE",
|
||||
"tags": Array [],
|
||||
}
|
||||
}
|
||||
viewer={null}
|
||||
@@ -680,11 +725,26 @@ exports[`renders disabled reply when story is closed 1`] = `
|
||||
<React.Fragment>
|
||||
<Relay(UsernameWithPopoverContainer)
|
||||
className="coral coral-username coral-comment-username"
|
||||
user={
|
||||
comment={
|
||||
Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
"author": Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
},
|
||||
"body": "Woof",
|
||||
"createdAt": "1995-12-17T03:24:00.000Z",
|
||||
"deleted": false,
|
||||
"editing": Object {
|
||||
"editableUntil": "1995-12-17T03:24:30.000Z",
|
||||
"edited": false,
|
||||
},
|
||||
"id": "comment-id",
|
||||
"lastViewerAction": null,
|
||||
"parent": null,
|
||||
"pending": false,
|
||||
"status": "NONE",
|
||||
"tags": Array [],
|
||||
}
|
||||
}
|
||||
viewer={null}
|
||||
@@ -878,11 +938,30 @@ exports[`renders in reply to 1`] = `
|
||||
<React.Fragment>
|
||||
<Relay(UsernameWithPopoverContainer)
|
||||
className="coral coral-username coral-comment-username"
|
||||
user={
|
||||
comment={
|
||||
Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
"author": Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
},
|
||||
"body": "Woof",
|
||||
"createdAt": "1995-12-17T03:24:00.000Z",
|
||||
"deleted": false,
|
||||
"editing": Object {
|
||||
"editableUntil": "1995-12-17T03:24:30.000Z",
|
||||
"edited": false,
|
||||
},
|
||||
"id": "comment-id",
|
||||
"lastViewerAction": null,
|
||||
"parent": Object {
|
||||
"author": Object {
|
||||
"username": "ParentAuthor",
|
||||
},
|
||||
},
|
||||
"pending": false,
|
||||
"status": "NONE",
|
||||
"tags": Array [],
|
||||
}
|
||||
}
|
||||
viewer={null}
|
||||
@@ -1076,11 +1155,26 @@ exports[`renders username and body 1`] = `
|
||||
<React.Fragment>
|
||||
<Relay(UsernameWithPopoverContainer)
|
||||
className="coral coral-username coral-comment-username"
|
||||
user={
|
||||
comment={
|
||||
Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
"author": Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
},
|
||||
"body": "Woof",
|
||||
"createdAt": "1995-12-17T03:24:00.000Z",
|
||||
"deleted": false,
|
||||
"editing": Object {
|
||||
"editableUntil": "1995-12-17T03:24:30.000Z",
|
||||
"edited": false,
|
||||
},
|
||||
"id": "comment-id",
|
||||
"lastViewerAction": null,
|
||||
"parent": null,
|
||||
"pending": false,
|
||||
"status": "NONE",
|
||||
"tags": Array [],
|
||||
}
|
||||
}
|
||||
viewer={null}
|
||||
@@ -1281,11 +1375,26 @@ exports[`shows conversation link 1`] = `
|
||||
<React.Fragment>
|
||||
<Relay(UsernameWithPopoverContainer)
|
||||
className="coral coral-username coral-comment-username"
|
||||
user={
|
||||
comment={
|
||||
Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
"author": Object {
|
||||
"badges": Array [],
|
||||
"id": "author-id",
|
||||
"username": "Marvin",
|
||||
},
|
||||
"body": "Woof",
|
||||
"createdAt": "1995-12-17T03:24:00.000Z",
|
||||
"deleted": false,
|
||||
"editing": Object {
|
||||
"editableUntil": "1995-12-17T03:24:30.000Z",
|
||||
"edited": false,
|
||||
},
|
||||
"id": "comment-id",
|
||||
"lastViewerAction": null,
|
||||
"parent": null,
|
||||
"pending": false,
|
||||
"status": "NONE",
|
||||
"tags": Array [],
|
||||
}
|
||||
}
|
||||
viewer={null}
|
||||
|
||||
+2
-2
@@ -72,7 +72,7 @@ const FeaturedCommentContainer: FunctionComponent<Props> = props => {
|
||||
{comment.author && (
|
||||
<UsernameWithPopoverContainer
|
||||
className={CLASSES.featuredComment.authorBar.username}
|
||||
user={comment.author}
|
||||
comment={comment}
|
||||
viewer={viewer}
|
||||
/>
|
||||
)}
|
||||
@@ -164,7 +164,6 @@ const enhanced = withSetCommentIDMutation(
|
||||
fragment FeaturedCommentContainer_comment on Comment {
|
||||
id
|
||||
author {
|
||||
...UsernameWithPopoverContainer_user
|
||||
id
|
||||
username
|
||||
}
|
||||
@@ -177,6 +176,7 @@ const enhanced = withSetCommentIDMutation(
|
||||
createdAt
|
||||
lastViewerAction
|
||||
replyCount
|
||||
...UsernameWithPopoverContainer_comment
|
||||
...ReactionButtonContainer_comment
|
||||
...UserTagsContainer_comment
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ const PostCommentFormFake: FunctionComponent<Props> = props => {
|
||||
/>
|
||||
)}
|
||||
<HorizontalGutter className={styles.root}>
|
||||
<div aria-hidden="true">
|
||||
<div>
|
||||
<Localized
|
||||
id="comments-postCommentFormFake-rte"
|
||||
attrs={{ placeholder: true }}
|
||||
|
||||
+1
-3
@@ -11,9 +11,7 @@ exports[`renders correctly 1`] = `
|
||||
<ForwardRef(forwardRef)
|
||||
className="PostCommentFormFake-root"
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div>
|
||||
<Localized
|
||||
attrs={
|
||||
Object {
|
||||
|
||||
+19
-1
@@ -17,6 +17,7 @@ import {
|
||||
} from "coral-stream/common/MessageBox";
|
||||
import Spinner from "coral-stream/common/Spinner";
|
||||
import {
|
||||
AriaInfo,
|
||||
HorizontalGutter,
|
||||
Icon,
|
||||
TileOption,
|
||||
@@ -104,36 +105,53 @@ const MessageBoxConfig: FunctionComponent<Props> = ({ disabled }) => (
|
||||
value="question_answer"
|
||||
>
|
||||
<Icon size="md">question_answer</Icon>
|
||||
<Localized id="configure-messageBox-iconConversation">
|
||||
<AriaInfo>Conversation</AriaInfo>
|
||||
</Localized>
|
||||
</TileOption>
|
||||
<TileOption
|
||||
className={CLASSES.configureMessageBox.option}
|
||||
value="today"
|
||||
>
|
||||
<Icon size="md">today</Icon>
|
||||
<Localized id="configure-messageBox-iconDate">
|
||||
<AriaInfo>Date</AriaInfo>
|
||||
</Localized>
|
||||
</TileOption>
|
||||
<TileOption
|
||||
className={CLASSES.configureMessageBox.option}
|
||||
value="help_outline"
|
||||
>
|
||||
<Icon size="md">help_outline</Icon>
|
||||
<Localized id="configure-messageBox-iconHelp">
|
||||
<AriaInfo>Help</AriaInfo>
|
||||
</Localized>
|
||||
</TileOption>
|
||||
<TileOption
|
||||
className={CLASSES.configureMessageBox.option}
|
||||
value="warning"
|
||||
>
|
||||
<Icon size="md">warning</Icon>
|
||||
<Localized id="configure-messageBox-iconWarning">
|
||||
<AriaInfo>Warning</AriaInfo>
|
||||
</Localized>
|
||||
</TileOption>
|
||||
<TileOption
|
||||
className={CLASSES.configureMessageBox.option}
|
||||
value="chat_bubble_outline"
|
||||
>
|
||||
<Icon size="md">chat_bubble_outline</Icon>
|
||||
<Localized id="configure-messageBox-iconChatBubble">
|
||||
<AriaInfo>Chat Bubble</AriaInfo>
|
||||
</Localized>
|
||||
</TileOption>
|
||||
<TileOption
|
||||
className={CLASSES.configureMessageBox.option}
|
||||
value=""
|
||||
>
|
||||
No Icon
|
||||
<Localized id="configure-messageBox-noIcon">
|
||||
<span>No Icon</span>
|
||||
</Localized>
|
||||
</TileOption>
|
||||
</TileSelector>
|
||||
</HorizontalGutter>
|
||||
|
||||
@@ -28,7 +28,11 @@ interface CommentHistoryProps {
|
||||
|
||||
const CommentHistory: FunctionComponent<CommentHistoryProps> = props => {
|
||||
return (
|
||||
<HorizontalGutter size="double" data-testid="profile-commentHistory">
|
||||
<HorizontalGutter
|
||||
size="double"
|
||||
id="coral-profile-commentHistory-log"
|
||||
data-testid="profile-commentHistory"
|
||||
>
|
||||
{props.comments.length < 1 && (
|
||||
<Flex
|
||||
direction="column"
|
||||
|
||||
+3
@@ -3,6 +3,7 @@
|
||||
exports[`has more disables load more 1`] = `
|
||||
<ForwardRef(forwardRef)
|
||||
data-testid="profile-commentHistory"
|
||||
id="coral-profile-commentHistory-log"
|
||||
size="double"
|
||||
>
|
||||
<withContext(createMutationContainer(Relay(HistoryCommentContainer)))
|
||||
@@ -44,6 +45,7 @@ exports[`has more disables load more 1`] = `
|
||||
exports[`has more renders correctly 1`] = `
|
||||
<ForwardRef(forwardRef)
|
||||
data-testid="profile-commentHistory"
|
||||
id="coral-profile-commentHistory-log"
|
||||
size="double"
|
||||
>
|
||||
<withContext(createMutationContainer(Relay(HistoryCommentContainer)))
|
||||
@@ -85,6 +87,7 @@ exports[`has more renders correctly 1`] = `
|
||||
exports[`renders correctly 1`] = `
|
||||
<ForwardRef(forwardRef)
|
||||
data-testid="profile-commentHistory"
|
||||
id="coral-profile-commentHistory-log"
|
||||
size="double"
|
||||
>
|
||||
<withContext(createMutationContainer(Relay(HistoryCommentContainer)))
|
||||
|
||||
@@ -139,7 +139,18 @@ const ConfirmPage: FunctionComponent<Props> = ({
|
||||
data-testid="confirm-page-form"
|
||||
>
|
||||
<HorizontalGutter>
|
||||
<TextField fullWidth disabled readOnly value="delete" />
|
||||
<Localized
|
||||
id="profile-account-deleteAccount-pages-phrase"
|
||||
attrs={{ "aria-label": true }}
|
||||
>
|
||||
<TextField
|
||||
fullWidth
|
||||
disabled
|
||||
readOnly
|
||||
value="delete"
|
||||
aria-label=""
|
||||
/>
|
||||
</Localized>
|
||||
<FormField>
|
||||
<Field
|
||||
name="confirmation"
|
||||
@@ -151,7 +162,9 @@ const ConfirmPage: FunctionComponent<Props> = ({
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="profile-account-deleteAccount-pages-confirmPhraseLabel">
|
||||
<InputLabel>
|
||||
<InputLabel
|
||||
container={<label htmlFor={input.name} />}
|
||||
>
|
||||
To confirm, type phrase below:
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
@@ -161,7 +174,7 @@ const ConfirmPage: FunctionComponent<Props> = ({
|
||||
data-testid="confirm-page-confirmation"
|
||||
disabled={submitting}
|
||||
color={colorFromMeta(meta)}
|
||||
autoComplete="confirmation"
|
||||
autoComplete="off"
|
||||
{...input}
|
||||
/>
|
||||
<FieldValidationMessage fullWidth meta={meta} />
|
||||
@@ -174,7 +187,11 @@ const ConfirmPage: FunctionComponent<Props> = ({
|
||||
{({ input, meta }) => (
|
||||
<FormField>
|
||||
<Localized id="profile-account-deleteAccount-pages-confirmPasswordLabel">
|
||||
<InputLabel>Enter your password:</InputLabel>
|
||||
<InputLabel
|
||||
container={<label htmlFor={input.name} />}
|
||||
>
|
||||
Enter your password:
|
||||
</InputLabel>
|
||||
</Localized>
|
||||
<PasswordField
|
||||
fullWidth
|
||||
@@ -182,7 +199,7 @@ const ConfirmPage: FunctionComponent<Props> = ({
|
||||
data-testid="confirm-page-password"
|
||||
disabled={submitting}
|
||||
color={colorFromMeta(meta)}
|
||||
autoComplete="password"
|
||||
autoComplete="off"
|
||||
{...input}
|
||||
/>
|
||||
<FieldValidationMessage fullWidth meta={meta} />
|
||||
|
||||
@@ -131,7 +131,10 @@ const NotificationSettingsContainer: FunctionComponent<Props> = ({
|
||||
<FormField>
|
||||
<Flex alignItems="center" itemGutter>
|
||||
<Localized id="profile-account-notifications-sendNotifications">
|
||||
<Typography variant="bodyCopyBold">
|
||||
<Typography
|
||||
variant="bodyCopyBold"
|
||||
container={<label htmlFor="digestFrequency" />}
|
||||
>
|
||||
Send Notifications:
|
||||
</Typography>
|
||||
</Localized>
|
||||
@@ -141,6 +144,7 @@ const NotificationSettingsContainer: FunctionComponent<Props> = ({
|
||||
{({ input }) => (
|
||||
<SelectField
|
||||
id={input.name}
|
||||
aria-label=""
|
||||
{...input}
|
||||
disabled={
|
||||
!values.onReply &&
|
||||
|
||||
+434
-427
@@ -4,317 +4,356 @@ exports[`renders comment stream 1`] = `
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root coral coral-stream App-root HorizontalGutter-full"
|
||||
>
|
||||
<ul
|
||||
className="TabBar-root TabBar-primary coral coral-tabBar"
|
||||
role="tablist"
|
||||
>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-COMMENTS"
|
||||
role="presentation"
|
||||
<nav>
|
||||
<h2
|
||||
className="AriaInfo-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-COMMENTS"
|
||||
aria-selected={true}
|
||||
className="BaseButton-root Tab-button Tab-primary Tab-active coral coral-tabBar-tab coral-tabBar-comments"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Comments
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<section
|
||||
aria-labelledby="tab-COMMENTS"
|
||||
className="App-tabContent coral coral-comments"
|
||||
data-testid="current-tab-pane"
|
||||
id="tabPane-COMMENTS"
|
||||
role="tabpanel"
|
||||
>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root StreamContainer-root coral coral-unauthenticated HorizontalGutter-double"
|
||||
Navigation
|
||||
</h2>
|
||||
<ul
|
||||
className="TabBar-root TabBar-primary coral coral-tabBar"
|
||||
role="tablist"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-viewerBox Flex-flex Flex-itemGutter Flex-alignCenter gutter"
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-COMMENTS"
|
||||
role="presentation"
|
||||
>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantUnderlined coral coral-viewerBox-signInButton"
|
||||
data-color="primary"
|
||||
data-variant="underlined"
|
||||
aria-controls="tabPane-COMMENTS"
|
||||
aria-selected={true}
|
||||
className="BaseButton-root Tab-button Tab-primary Tab-active coral coral-tabBar-tab coral-tabBar-comments"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
Sign in
|
||||
<span>
|
||||
Comments
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlined coral coral-viewerBox-registerButton"
|
||||
data-color="primary"
|
||||
data-variant="outlined"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Register
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<section
|
||||
aria-labelledby="tab-COMMENTS"
|
||||
className="App-tabContent coral coral-comments"
|
||||
data-testid="current-tab-pane"
|
||||
id="tabPane-COMMENTS"
|
||||
role="tabpanel"
|
||||
>
|
||||
<div
|
||||
className="coral coral-createComment"
|
||||
className="Box-root HorizontalGutter-root StreamContainer-root coral coral-unauthenticated HorizontalGutter-double"
|
||||
>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root PostCommentFormFake-root HorizontalGutter-full"
|
||||
className="Box-root Flex-root coral coral-viewerBox Flex-flex Flex-itemGutter Flex-alignCenter gutter"
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
className="$root content placeholder toolbar"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
>
|
||||
<div
|
||||
className="RTE-contentEditableContainer"
|
||||
>
|
||||
<div
|
||||
aria-placeholder="Post a comment"
|
||||
className="RTE-contentEditable coral coral-rte-content RTE-content"
|
||||
contentEditable={true}
|
||||
dangerouslySetInnerHTML={
|
||||
Object {
|
||||
"__html": "",
|
||||
}
|
||||
}
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
onCut={[Function]}
|
||||
onFocus={[Function]}
|
||||
onInput={[Function]}
|
||||
onKeyDown={[Function]}
|
||||
onPaste={[Function]}
|
||||
onSelect={[Function]}
|
||||
/>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
className="RTE-placeholder coral coral-rte-placholder RTE-placeholder"
|
||||
>
|
||||
Post a comment
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="coral coral-rte-toolbar RTE-toolbar RTE-toolbarBottom Toolbar-toolbar"
|
||||
>
|
||||
<button
|
||||
className="Button-button"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
title="Bold"
|
||||
type="button"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-md"
|
||||
>
|
||||
format_bold
|
||||
</i>
|
||||
</button>
|
||||
<button
|
||||
className="Button-button"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
title="Italic"
|
||||
type="button"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-md"
|
||||
>
|
||||
format_italic
|
||||
</i>
|
||||
</button>
|
||||
<button
|
||||
className="Button-button"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
title="Blockquote"
|
||||
type="button"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-md"
|
||||
>
|
||||
format_quote
|
||||
</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeRegular Button-colorPrimary Button-variantFilled Button-fullWidth coral coral-createComment-signIn"
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantUnderlined coral coral-viewerBox-signInButton"
|
||||
data-color="primary"
|
||||
data-variant="filled"
|
||||
data-variant="underlined"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="submit"
|
||||
type="button"
|
||||
>
|
||||
Sign in and Join the Conversation
|
||||
Sign in
|
||||
</button>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlined coral coral-viewerBox-registerButton"
|
||||
data-color="primary"
|
||||
data-variant="outlined"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Register
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root StreamContainer-tabBarContainer HorizontalGutter-spacing-4"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root StreamContainer-sortMenu coral coral-sortMenu Flex-flex Flex-itemGutter Flex-justifyFlexEnd Flex-alignCenter gutter"
|
||||
className="coral coral-createComment"
|
||||
>
|
||||
<label
|
||||
className="Box-root Typography-root Typography-bodyCopyBold Typography-colorTextPrimary"
|
||||
htmlFor="coral-comments-sortMenu"
|
||||
>
|
||||
Sort By
|
||||
</label>
|
||||
<span
|
||||
className="SelectField-root"
|
||||
>
|
||||
<select
|
||||
className="SelectField-select undefined"
|
||||
id="coral-comments-sortMenu"
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
value="CREATED_AT_DESC"
|
||||
>
|
||||
<option
|
||||
value="CREATED_AT_DESC"
|
||||
>
|
||||
Newest
|
||||
</option>
|
||||
<option
|
||||
value="CREATED_AT_ASC"
|
||||
>
|
||||
Oldest
|
||||
</option>
|
||||
<option
|
||||
value="REPLIES_DESC"
|
||||
>
|
||||
Most Replies
|
||||
</option>
|
||||
<option
|
||||
value="REACTION_DESC"
|
||||
>
|
||||
Most Respected
|
||||
</option>
|
||||
</select>
|
||||
<span
|
||||
aria-hidden={true}
|
||||
className="SelectField-afterWrapper undefined"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-sm"
|
||||
>
|
||||
expand_more
|
||||
</i>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<ul
|
||||
className="TabBar-root TabBar-secondary coral coral-tabBarSecondary coral-tabBarComments"
|
||||
role="tablist"
|
||||
>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-ALL_COMMENTS"
|
||||
role="presentation"
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root PostCommentFormFake-root HorizontalGutter-full"
|
||||
>
|
||||
<div>
|
||||
<div>
|
||||
<div
|
||||
className="$root content placeholder toolbar"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
>
|
||||
<div
|
||||
className="RTE-contentEditableContainer"
|
||||
>
|
||||
<div
|
||||
aria-placeholder="Post a comment"
|
||||
className="RTE-contentEditable coral coral-rte-content RTE-content"
|
||||
contentEditable={true}
|
||||
dangerouslySetInnerHTML={
|
||||
Object {
|
||||
"__html": "",
|
||||
}
|
||||
}
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
onCut={[Function]}
|
||||
onFocus={[Function]}
|
||||
onInput={[Function]}
|
||||
onKeyDown={[Function]}
|
||||
onPaste={[Function]}
|
||||
onSelect={[Function]}
|
||||
/>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
className="RTE-placeholder coral coral-rte-placholder RTE-placeholder"
|
||||
>
|
||||
Post a comment
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="coral coral-rte-toolbar RTE-toolbar RTE-toolbarBottom Toolbar-toolbar"
|
||||
>
|
||||
<button
|
||||
className="Button-button"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
title="Bold"
|
||||
type="button"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-md"
|
||||
>
|
||||
format_bold
|
||||
</i>
|
||||
</button>
|
||||
<button
|
||||
className="Button-button"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
title="Italic"
|
||||
type="button"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-md"
|
||||
>
|
||||
format_italic
|
||||
</i>
|
||||
</button>
|
||||
<button
|
||||
className="Button-button"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
title="Blockquote"
|
||||
type="button"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-md"
|
||||
>
|
||||
format_quote
|
||||
</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
aria-controls="tabPane-ALL_COMMENTS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-secondary coral coral-tabBarSecondary-tab coral-tabBarComments-allComments"
|
||||
className="BaseButton-root Button-root Button-sizeRegular Button-colorPrimary Button-variantFilled Button-fullWidth coral coral-createComment-signIn"
|
||||
data-color="primary"
|
||||
data-variant="filled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
type="submit"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-alignCenter gutter Flex-spacing-1"
|
||||
>
|
||||
<span>
|
||||
All Comments
|
||||
</span>
|
||||
<span
|
||||
className="Counter-root Counter-colorGrey Counter-sizeSmall coral coral-counter"
|
||||
>
|
||||
<span
|
||||
className="Counter-text"
|
||||
>
|
||||
2
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
Sign in and Join the Conversation
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<section
|
||||
aria-labelledby="tab-FEATURED_COMMENTS"
|
||||
className="coral coral-featuredComments"
|
||||
id="tabPane-FEATURED_COMMENTS"
|
||||
role="tabpanel"
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root StreamContainer-tabBarContainer HorizontalGutter-spacing-4"
|
||||
>
|
||||
<div
|
||||
aria-live="polite"
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-spacing-3"
|
||||
data-testid="comments-featuredComments-log"
|
||||
id="comments-featuredComments-log"
|
||||
role="log"
|
||||
className="Box-root Flex-root StreamContainer-sortMenu coral coral-sortMenu Flex-flex Flex-itemGutter Flex-justifyFlexEnd Flex-alignCenter gutter"
|
||||
>
|
||||
<label
|
||||
className="Box-root Typography-root Typography-bodyCopyBold Typography-colorTextPrimary"
|
||||
htmlFor="coral-comments-sortMenu"
|
||||
>
|
||||
Sort By
|
||||
</label>
|
||||
<span
|
||||
className="SelectField-root"
|
||||
>
|
||||
<select
|
||||
className="SelectField-select undefined"
|
||||
id="coral-comments-sortMenu"
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
value="CREATED_AT_DESC"
|
||||
>
|
||||
<option
|
||||
value="CREATED_AT_DESC"
|
||||
>
|
||||
Newest
|
||||
</option>
|
||||
<option
|
||||
value="CREATED_AT_ASC"
|
||||
>
|
||||
Oldest
|
||||
</option>
|
||||
<option
|
||||
value="REPLIES_DESC"
|
||||
>
|
||||
Most Replies
|
||||
</option>
|
||||
<option
|
||||
value="REACTION_DESC"
|
||||
>
|
||||
Most Respected
|
||||
</option>
|
||||
</select>
|
||||
<span
|
||||
aria-hidden={true}
|
||||
className="SelectField-afterWrapper undefined"
|
||||
>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-sm"
|
||||
>
|
||||
expand_more
|
||||
</i>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<ul
|
||||
className="TabBar-root TabBar-secondary coral coral-tabBarSecondary coral-tabBarComments"
|
||||
role="tablist"
|
||||
>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-ALL_COMMENTS"
|
||||
role="presentation"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-ALL_COMMENTS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-secondary coral coral-tabBarSecondary-tab coral-tabBarComments-allComments"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-alignCenter gutter Flex-spacing-1"
|
||||
>
|
||||
<span>
|
||||
All Comments
|
||||
</span>
|
||||
<span
|
||||
className="Counter-root Counter-colorGrey Counter-sizeSmall coral coral-counter"
|
||||
>
|
||||
<span
|
||||
className="Counter-text"
|
||||
>
|
||||
2
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<section
|
||||
aria-labelledby="tab-FEATURED_COMMENTS"
|
||||
className="coral coral-featuredComments"
|
||||
id="tabPane-FEATURED_COMMENTS"
|
||||
role="tabpanel"
|
||||
>
|
||||
<div
|
||||
className="coral coral-featuredComment FeaturedCommentContainer-root"
|
||||
data-testid="featuredComment-comment-0"
|
||||
aria-live="polite"
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-spacing-3"
|
||||
data-testid="comments-featuredComments-log"
|
||||
id="comments-featuredComments-log"
|
||||
role="log"
|
||||
>
|
||||
<div
|
||||
className="HTMLContent-root coral coral-content coral-featuredComment-content"
|
||||
dangerouslySetInnerHTML={
|
||||
Object {
|
||||
"__html": "Joining Too",
|
||||
}
|
||||
}
|
||||
/>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-featuredComment-authorBar Flex-flex Flex-alignCenter Flex-directionRow Box-mt-4"
|
||||
className="coral coral-featuredComment FeaturedCommentContainer-root"
|
||||
data-testid="featuredComment-comment-0"
|
||||
>
|
||||
<div
|
||||
className="Popover-root"
|
||||
className="HTMLContent-root coral coral-content coral-featuredComment-content"
|
||||
dangerouslySetInnerHTML={
|
||||
Object {
|
||||
"__html": "Joining Too",
|
||||
}
|
||||
}
|
||||
/>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-featuredComment-authorBar Flex-flex Flex-alignCenter Flex-directionRow Box-mt-4"
|
||||
>
|
||||
<div
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover-comment-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<span
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextDark Username-root"
|
||||
>
|
||||
Markus
|
||||
</span>
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-comment-0-ariainfo"
|
||||
id="username-popover-comment-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-comment-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span
|
||||
className="Box-root Box-ml-1"
|
||||
/>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
className="BaseButton-root Timestamp-root"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
@@ -323,111 +362,23 @@ exports[`renders comment stream 1`] = `
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<span
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextDark Username-root"
|
||||
<time
|
||||
className="RelativeTime-root Timestamp-text Box-root Box-ml-2"
|
||||
dateTime="2018-07-06T18:24:00.000Z"
|
||||
title="2018-07-06T18:24:00.000Z"
|
||||
>
|
||||
Markus
|
||||
</span>
|
||||
2018-07-06T18:24:00.000Z
|
||||
</time>
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span
|
||||
className="Box-root Box-ml-1"
|
||||
/>
|
||||
<button
|
||||
className="BaseButton-root Timestamp-root"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<time
|
||||
className="RelativeTime-root Timestamp-text Box-root Box-ml-2"
|
||||
dateTime="2018-07-06T18:24:00.000Z"
|
||||
title="2018-07-06T18:24:00.000Z"
|
||||
>
|
||||
2018-07-06T18:24:00.000Z
|
||||
</time>
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-featuredComment-actionBar Flex-flex Flex-justifySpaceBetween Box-mt-2"
|
||||
>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantTextUnderlined coral coral-reactButton coral-featuredComment-reactButton ReactionButton-button"
|
||||
data-color="primary"
|
||||
data-variant="textUnderlined"
|
||||
disabled={false}
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Respect
|
||||
</span>
|
||||
</button>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<a
|
||||
className="TextLink-root coral coral-featuredComment-goToConversationButton FeaturedCommentContainer-gotoConversation"
|
||||
href="http://localhost/stories/story-with-featured-comments?commentID=comment-0"
|
||||
onClick={[Function]}
|
||||
>
|
||||
<span>
|
||||
Go to Conversation
|
||||
</span>
|
||||
<span
|
||||
className="FeaturedCommentContainer-gotoArrow"
|
||||
>
|
||||
>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="coral coral-featuredComment FeaturedCommentContainer-root"
|
||||
data-testid="featuredComment-comment-1"
|
||||
>
|
||||
<div
|
||||
className="HTMLContent-root coral coral-content coral-featuredComment-content"
|
||||
dangerouslySetInnerHTML={
|
||||
Object {
|
||||
"__html": "What's up?",
|
||||
}
|
||||
}
|
||||
/>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-featuredComment-authorBar Flex-flex Flex-alignCenter Flex-directionRow Box-mt-4"
|
||||
>
|
||||
<div
|
||||
className="Popover-root"
|
||||
className="Box-root Flex-root coral coral-featuredComment-actionBar Flex-flex Flex-justifySpaceBetween Box-mt-2"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantTextUnderlined coral coral-reactButton coral-featuredComment-reactButton ReactionButton-button"
|
||||
data-color="primary"
|
||||
data-variant="textUnderlined"
|
||||
disabled={false}
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
@@ -436,94 +387,150 @@ exports[`renders comment stream 1`] = `
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<span
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextDark Username-root"
|
||||
>
|
||||
Lukas
|
||||
<span>
|
||||
Respect
|
||||
</span>
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
role="dialog"
|
||||
className="Box-root Flex-root Flex-flex Flex-alignCenter"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
<div>
|
||||
<a
|
||||
className="TextLink-root coral coral-featuredComment-goToConversationButton FeaturedCommentContainer-gotoConversation"
|
||||
href="http://localhost/stories/story-with-featured-comments?commentID=comment-0"
|
||||
onClick={[Function]}
|
||||
>
|
||||
<span>
|
||||
Go to Conversation
|
||||
</span>
|
||||
<span
|
||||
className="FeaturedCommentContainer-gotoArrow"
|
||||
>
|
||||
>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span
|
||||
className="Box-root Box-ml-1"
|
||||
/>
|
||||
<button
|
||||
className="BaseButton-root Timestamp-root"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<time
|
||||
className="RelativeTime-root Timestamp-text Box-root Box-ml-2"
|
||||
dateTime="2018-07-06T18:24:00.000Z"
|
||||
title="2018-07-06T18:24:00.000Z"
|
||||
>
|
||||
2018-07-06T18:24:00.000Z
|
||||
</time>
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-featuredComment-actionBar Flex-flex Flex-justifySpaceBetween Box-mt-2"
|
||||
className="coral coral-featuredComment FeaturedCommentContainer-root"
|
||||
data-testid="featuredComment-comment-1"
|
||||
>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantTextUnderlined coral coral-reactButton coral-featuredComment-reactButton ReactionButton-button"
|
||||
data-color="primary"
|
||||
data-variant="textUnderlined"
|
||||
disabled={false}
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Respect
|
||||
</span>
|
||||
</button>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-alignCenter"
|
||||
className="HTMLContent-root coral coral-content coral-featuredComment-content"
|
||||
dangerouslySetInnerHTML={
|
||||
Object {
|
||||
"__html": "What's up?",
|
||||
}
|
||||
}
|
||||
/>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-featuredComment-authorBar Flex-flex Flex-alignCenter Flex-directionRow Box-mt-4"
|
||||
>
|
||||
<div>
|
||||
<a
|
||||
className="TextLink-root coral coral-featuredComment-goToConversationButton FeaturedCommentContainer-gotoConversation"
|
||||
href="http://localhost/stories/story-with-featured-comments?commentID=comment-1"
|
||||
<div
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover-comment-1"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Go to Conversation
|
||||
</span>
|
||||
<span
|
||||
className="FeaturedCommentContainer-gotoArrow"
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextDark Username-root"
|
||||
>
|
||||
>
|
||||
Lukas
|
||||
</span>
|
||||
</a>
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-comment-1-ariainfo"
|
||||
id="username-popover-comment-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-comment-1-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span
|
||||
className="Box-root Box-ml-1"
|
||||
/>
|
||||
<button
|
||||
className="BaseButton-root Timestamp-root"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<time
|
||||
className="RelativeTime-root Timestamp-text Box-root Box-ml-2"
|
||||
dateTime="2018-07-06T18:24:00.000Z"
|
||||
title="2018-07-06T18:24:00.000Z"
|
||||
>
|
||||
2018-07-06T18:24:00.000Z
|
||||
</time>
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-featuredComment-actionBar Flex-flex Flex-justifySpaceBetween Box-mt-2"
|
||||
>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantTextUnderlined coral coral-reactButton coral-featuredComment-reactButton ReactionButton-button"
|
||||
data-color="primary"
|
||||
data-variant="textUnderlined"
|
||||
disabled={false}
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Respect
|
||||
</span>
|
||||
</button>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<a
|
||||
className="TextLink-root coral coral-featuredComment-goToConversationButton FeaturedCommentContainer-gotoConversation"
|
||||
href="http://localhost/stories/story-with-featured-comments?commentID=comment-1"
|
||||
onClick={[Function]}
|
||||
>
|
||||
<span>
|
||||
Go to Conversation
|
||||
</span>
|
||||
<span
|
||||
className="FeaturedCommentContainer-gotoArrow"
|
||||
>
|
||||
>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
`;
|
||||
|
||||
+20
-20
@@ -134,7 +134,7 @@ exports[`renders permalink view 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-1"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -152,13 +152,13 @@ exports[`renders permalink view 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-1-ariainfo"
|
||||
id="username-popover-comment-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-1-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -362,7 +362,7 @@ exports[`renders permalink view 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-2"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -380,13 +380,13 @@ exports[`renders permalink view 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-2-ariainfo"
|
||||
id="username-popover-comment-2"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-2-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -588,7 +588,7 @@ exports[`renders permalink view 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-replies"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -606,13 +606,13 @@ exports[`renders permalink view 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-replies-ariainfo"
|
||||
id="username-popover-comment-with-replies"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-replies-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -810,7 +810,7 @@ exports[`renders permalink view 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-3"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -828,13 +828,13 @@ exports[`renders permalink view 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-3-ariainfo"
|
||||
id="username-popover-comment-3"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-3-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -1048,7 +1048,7 @@ exports[`renders permalink view 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-4"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -1066,13 +1066,13 @@ exports[`renders permalink view 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-4-ariainfo"
|
||||
id="username-popover-comment-4"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-4-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
+16
-16
@@ -175,7 +175,7 @@ exports[`renders conversation thread 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -193,13 +193,13 @@ exports[`renders conversation thread 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-0-ariainfo"
|
||||
id="username-popover-comment-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -416,7 +416,7 @@ exports[`shows more of this conversation 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-1"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -434,13 +434,13 @@ exports[`shows more of this conversation 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-1-ariainfo"
|
||||
id="username-popover-comment-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-1-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -644,7 +644,7 @@ exports[`shows more of this conversation 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-from-staff-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -662,13 +662,13 @@ exports[`shows more of this conversation 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-from-staff-0-ariainfo"
|
||||
id="username-popover-comment-from-staff-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-from-staff-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -875,7 +875,7 @@ exports[`shows more of this conversation 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -893,13 +893,13 @@ exports[`shows more of this conversation 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-0-ariainfo"
|
||||
id="username-popover-comment-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
+16
-16
@@ -31,7 +31,7 @@ exports[`cancel edit 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-replies"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -49,13 +49,13 @@ exports[`cancel edit 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-replies-ariainfo"
|
||||
id="username-popover-comment-with-replies"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-replies-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -845,7 +845,7 @@ exports[`edit a comment: render comment with edit button 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-replies"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -863,13 +863,13 @@ exports[`edit a comment: render comment with edit button 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-replies-ariainfo"
|
||||
id="username-popover-comment-with-replies"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-replies-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -1089,7 +1089,7 @@ exports[`edit a comment: server response 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-replies"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -1107,13 +1107,13 @@ exports[`edit a comment: server response 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-replies-ariainfo"
|
||||
id="username-popover-comment-with-replies"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-replies-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -1342,7 +1342,7 @@ exports[`shows expiry message: edit form closed 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-replies"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -1360,13 +1360,13 @@ exports[`shows expiry message: edit form closed 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-replies-ariainfo"
|
||||
id="username-popover-comment-with-replies"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-replies-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
@@ -41,7 +41,7 @@ exports[`renders comment stream with load more button 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -59,13 +59,13 @@ exports[`renders comment stream with load more button 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-0-ariainfo"
|
||||
id="username-popover-comment-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -252,7 +252,7 @@ exports[`renders comment stream with load more button 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-1"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -270,13 +270,13 @@ exports[`renders comment stream with load more button 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-1-ariainfo"
|
||||
id="username-popover-comment-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-1-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
@@ -31,7 +31,7 @@ exports[`post a comment: optimistic response 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-uuid-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -49,13 +49,13 @@ exports[`post a comment: optimistic response 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-uuid-0-ariainfo"
|
||||
id="username-popover-uuid-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-uuid-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
+32
-32
@@ -31,7 +31,7 @@ exports[`post a reply: open reply form 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies-5"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -49,13 +49,13 @@ exports[`post a reply: open reply form 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-5-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-5"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-5-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -476,7 +476,7 @@ exports[`post a reply: optimistic response 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-uuid-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -494,13 +494,13 @@ exports[`post a reply: optimistic response 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-uuid-0-ariainfo"
|
||||
id="username-popover-uuid-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-uuid-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -740,7 +740,7 @@ exports[`renders comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -758,13 +758,13 @@ exports[`renders comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -975,7 +975,7 @@ exports[`renders comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies-1"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -993,13 +993,13 @@ exports[`renders comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-1-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-1-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -1237,7 +1237,7 @@ exports[`renders comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies-2"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -1255,13 +1255,13 @@ exports[`renders comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-2-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-2"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-2-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -1499,7 +1499,7 @@ exports[`renders comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies-3"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -1517,13 +1517,13 @@ exports[`renders comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-3-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-3"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-3-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -1761,7 +1761,7 @@ exports[`renders comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies-4"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -1779,13 +1779,13 @@ exports[`renders comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-4-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-4"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-4-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -2023,7 +2023,7 @@ exports[`renders comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies-5"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -2041,13 +2041,13 @@ exports[`renders comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-5-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-5"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-5-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
@@ -31,7 +31,7 @@ exports[`post a reply: open reply form 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -49,13 +49,13 @@ exports[`post a reply: open reply form 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-0-ariainfo"
|
||||
id="username-popover-comment-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -432,7 +432,7 @@ exports[`post a reply: optimistic response 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-uuid-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -450,13 +450,13 @@ exports[`post a reply: optimistic response 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-uuid-0-ariainfo"
|
||||
id="username-popover-uuid-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-uuid-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
+9
-11
@@ -64,9 +64,7 @@ exports[`renders comment stream with community guidelines 1`] = `
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root PostCommentFormFake-root HorizontalGutter-full"
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div>
|
||||
<div>
|
||||
<div
|
||||
className="$root content placeholder toolbar"
|
||||
@@ -311,7 +309,7 @@ exports[`renders comment stream with community guidelines 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-0"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -329,13 +327,13 @@ exports[`renders comment stream with community guidelines 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-0-ariainfo"
|
||||
id="username-popover-comment-0"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-0-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -522,7 +520,7 @@ exports[`renders comment stream with community guidelines 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-1"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -540,13 +538,13 @@ exports[`renders comment stream with community guidelines 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-1-ariainfo"
|
||||
id="username-popover-comment-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-1-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
+1
-3
@@ -601,9 +601,7 @@ exports[`renders message box when not logged in 1`] = `
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root PostCommentFormFake-root HorizontalGutter-full"
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div>
|
||||
<div>
|
||||
<div
|
||||
className="$root content placeholder toolbar"
|
||||
|
||||
+16
-16
@@ -40,7 +40,7 @@ exports[`renders reply list 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-replies"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -58,13 +58,13 @@ exports[`renders reply list 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-replies-ariainfo"
|
||||
id="username-popover-comment-with-replies"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-replies-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -283,7 +283,7 @@ exports[`renders reply list 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-3"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -301,13 +301,13 @@ exports[`renders reply list 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-3-ariainfo"
|
||||
id="username-popover-comment-3"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-3-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -521,7 +521,7 @@ exports[`renders reply list 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-4"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -539,13 +539,13 @@ exports[`renders reply list 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-4-ariainfo"
|
||||
id="username-popover-comment-4"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-4-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -761,7 +761,7 @@ exports[`renders reply list 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-5"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -779,13 +779,13 @@ exports[`renders reply list 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-5-ariainfo"
|
||||
id="username-popover-comment-5"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-5-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
+598
-591
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -40,7 +40,7 @@ exports[`renders comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-1"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -58,13 +58,13 @@ exports[`renders comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-1-ariainfo"
|
||||
id="username-popover-comment-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-1-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
+4
-4
@@ -31,7 +31,7 @@ exports[`renders deepest comment with link 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-with-deepest-replies-5"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -49,13 +49,13 @@ exports[`renders deepest comment with link 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-with-deepest-replies-5-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-5"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-with-deepest-replies-5-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
@@ -41,7 +41,7 @@ exports[`renders app with comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-2"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -59,13 +59,13 @@ exports[`renders app with comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-2-ariainfo"
|
||||
id="username-popover-comment-2"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-2-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
@@ -252,7 +252,7 @@ exports[`renders app with comment stream 1`] = `
|
||||
className="Popover-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="username-popover"
|
||||
aria-controls="username-popover-comment-3"
|
||||
className="BaseButton-root coral coral-username coral-comment-username"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
@@ -270,13 +270,13 @@ exports[`renders app with comment stream 1`] = `
|
||||
</button>
|
||||
<div
|
||||
aria-hidden={true}
|
||||
aria-labelledby="username-popover-ariainfo"
|
||||
id="username-popover"
|
||||
aria-labelledby="username-popover-comment-3-ariainfo"
|
||||
id="username-popover-comment-3"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="AriaInfo-root"
|
||||
id="username-popover-ariainfo"
|
||||
id="username-popover-comment-3-ariainfo"
|
||||
>
|
||||
A popover with more user information
|
||||
</div>
|
||||
|
||||
@@ -4,407 +4,454 @@ exports[`renders the empty settings pane 1`] = `
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root coral coral-stream App-root HorizontalGutter-full"
|
||||
>
|
||||
<ul
|
||||
className="TabBar-root TabBar-primary coral coral-tabBar"
|
||||
role="tablist"
|
||||
>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-COMMENTS"
|
||||
role="presentation"
|
||||
<nav>
|
||||
<h2
|
||||
className="AriaInfo-root"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-COMMENTS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-primary coral coral-tabBar-tab coral-tabBar-comments"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Comments
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-PROFILE"
|
||||
role="presentation"
|
||||
Navigation
|
||||
</h2>
|
||||
<ul
|
||||
className="TabBar-root TabBar-primary coral coral-tabBar"
|
||||
role="tablist"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-PROFILE"
|
||||
aria-selected={true}
|
||||
className="BaseButton-root Tab-button Tab-primary Tab-active coral coral-tabBar-tab coral-tabBar-myProfile"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-COMMENTS"
|
||||
role="presentation"
|
||||
>
|
||||
<span>
|
||||
My Profile
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<section
|
||||
aria-labelledby="tab-PROFILE"
|
||||
className="App-tabContent coral coral-myProfile"
|
||||
data-testid="current-tab-pane"
|
||||
id="tabPane-PROFILE"
|
||||
role="tabpanel"
|
||||
>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-double"
|
||||
<button
|
||||
aria-controls="tabPane-COMMENTS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-primary coral coral-tabBar-tab coral-tabBar-comments"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Comments
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-PROFILE"
|
||||
role="presentation"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-PROFILE"
|
||||
aria-selected={true}
|
||||
className="BaseButton-root Tab-button Tab-primary Tab-active coral coral-tabBar-tab coral-tabBar-myProfile"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
My Profile
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<section
|
||||
aria-labelledby="tab-PROFILE"
|
||||
className="App-tabContent coral coral-myProfile"
|
||||
data-testid="current-tab-pane"
|
||||
id="tabPane-PROFILE"
|
||||
role="tabpanel"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root coral coral-viewerBox"
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-double"
|
||||
>
|
||||
<div
|
||||
className="Flex-flex Flex-halfItemGutter Flex-wrap gutter"
|
||||
className="Box-root Flex-root coral coral-viewerBox"
|
||||
>
|
||||
<div
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary UserBoxAuthenticated-userBoxText"
|
||||
className="Flex-flex Flex-halfItemGutter Flex-wrap gutter"
|
||||
>
|
||||
Signed in as
|
||||
<span
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextPrimary"
|
||||
<div
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary UserBoxAuthenticated-userBoxText"
|
||||
>
|
||||
Passivo
|
||||
</span>
|
||||
.
|
||||
Signed in as
|
||||
<span
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextPrimary"
|
||||
>
|
||||
Passivo
|
||||
</span>
|
||||
.
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary UserBoxAuthenticated-userBoxText Flex-flex"
|
||||
>
|
||||
<span>
|
||||
Not you?
|
||||
</span>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantRegular UserBoxAuthenticated-userBoxButton coral coral-viewerBox-logoutButton"
|
||||
data-color="primary"
|
||||
data-variant="regular"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Sign Out
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root Flex-root Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary UserBoxAuthenticated-userBoxText Flex-flex"
|
||||
</div>
|
||||
<ul
|
||||
className="TabBar-root TabBar-secondary coral coral-tabBarSecondary coral-tabBarMyProfile"
|
||||
role="tablist"
|
||||
>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-MY_COMMENTS"
|
||||
role="presentation"
|
||||
>
|
||||
<span>
|
||||
Not you?
|
||||
</span>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantRegular UserBoxAuthenticated-userBoxButton coral coral-viewerBox-logoutButton"
|
||||
data-color="primary"
|
||||
data-variant="regular"
|
||||
aria-controls="tabPane-MY_COMMENTS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-secondary coral coral-tabBarSecondary-tab coral-tabBarMyProfile-myComments"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
Sign Out
|
||||
<span>
|
||||
My comments
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ul
|
||||
className="TabBar-root TabBar-secondary coral coral-tabBarSecondary coral-tabBarMyProfile"
|
||||
role="tablist"
|
||||
>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-MY_COMMENTS"
|
||||
role="presentation"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-MY_COMMENTS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-secondary coral coral-tabBarSecondary-tab coral-tabBarMyProfile-myComments"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
</li>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-NOTIFICATIONS"
|
||||
role="presentation"
|
||||
>
|
||||
<span>
|
||||
My comments
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-NOTIFICATIONS"
|
||||
role="presentation"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-NOTIFICATIONS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-secondary coral coral-tabBarSecondary-tab coral-tabBarMyProfile-notifications"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
<button
|
||||
aria-controls="tabPane-NOTIFICATIONS"
|
||||
aria-selected={false}
|
||||
className="BaseButton-root Tab-button Tab-secondary coral coral-tabBarSecondary-tab coral-tabBarMyProfile-notifications"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Notifications
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-ACCOUNT"
|
||||
role="presentation"
|
||||
>
|
||||
<span>
|
||||
Notifications
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
className="Tab-root"
|
||||
id="tab-ACCOUNT"
|
||||
role="presentation"
|
||||
<button
|
||||
aria-controls="tabPane-ACCOUNT"
|
||||
aria-selected={true}
|
||||
className="BaseButton-root Tab-button Tab-secondary Tab-active coral coral-tabBarSecondary-tab coral-tabBarMyProfile-settings"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Account
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<section
|
||||
aria-labelledby="tab-ACCOUNT"
|
||||
className="coral coral-account"
|
||||
id="tabPane-ACCOUNT"
|
||||
role="tabpanel"
|
||||
>
|
||||
<button
|
||||
aria-controls="tabPane-ACCOUNT"
|
||||
aria-selected={true}
|
||||
className="BaseButton-root Tab-button Tab-secondary Tab-active coral coral-tabBarSecondary-tab coral-tabBarMyProfile-settings"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
role="tab"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Account
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<section
|
||||
aria-labelledby="tab-ACCOUNT"
|
||||
className="coral coral-account"
|
||||
id="tabPane-ACCOUNT"
|
||||
role="tabpanel"
|
||||
>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-oneAndAHalf"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading1 Typography-colorTextPrimary"
|
||||
>
|
||||
Manage your account
|
||||
</h1>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root AccountSettingsContainer-root HorizontalGutter-full"
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-oneAndAHalf"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading1 Typography-colorTextPrimary"
|
||||
>
|
||||
Manage your account
|
||||
</h1>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-spacing-5"
|
||||
data-testid="profile-changeUsername"
|
||||
className="Box-root HorizontalGutter-root AccountSettingsContainer-root HorizontalGutter-full"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignBaseline"
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-spacing-5"
|
||||
data-testid="profile-changeUsername"
|
||||
>
|
||||
<div>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark coral coral-myUsername"
|
||||
>
|
||||
Username
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary"
|
||||
>
|
||||
Passivo
|
||||
</p>
|
||||
</div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-myUsername-editButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignBaseline"
|
||||
>
|
||||
Edit
|
||||
</button>
|
||||
<div>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark coral coral-myUsername"
|
||||
>
|
||||
Username
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary"
|
||||
>
|
||||
Passivo
|
||||
</p>
|
||||
</div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-myUsername-editButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root coral coral-myEmail HorizontalGutter-spacing-5"
|
||||
data-testid="profile-changeEmail"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignCenter"
|
||||
className="Box-root HorizontalGutter-root coral coral-myEmail HorizontalGutter-spacing-5"
|
||||
data-testid="profile-changeEmail"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignCenter"
|
||||
>
|
||||
<div>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark"
|
||||
>
|
||||
Email
|
||||
</h1>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex"
|
||||
>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary"
|
||||
/>
|
||||
<span>
|
||||
|
||||
</span>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextSecondary coral coral-myEmail-unverified"
|
||||
>
|
||||
(Unverified)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-myEmail-editButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
className="CallOut-root CallOut-colorRegular coral coral-verifyEmail"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-itemGutter gutter"
|
||||
>
|
||||
<div>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-lg"
|
||||
>
|
||||
email
|
||||
</i>
|
||||
</div>
|
||||
<div>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextPrimary Typography-gutterBottom"
|
||||
>
|
||||
Verify your email address
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary"
|
||||
>
|
||||
An email has been sent to $email to verify your account.
|
||||
You must verify your new email address before it can be used
|
||||
to sign in to your account or to receive notifications.
|
||||
</p>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeRegular Button-colorPrimary Button-variantRegular ChangeEmailContainer-resendButton coral coral-verifyEmail-resendButton"
|
||||
data-color="primary"
|
||||
data-variant="regular"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Resend verification
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="coral coral-myPassword"
|
||||
data-testid="profile-account-changePassword"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignCenter"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark"
|
||||
>
|
||||
Email
|
||||
Password
|
||||
</h1>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex"
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-myPassword-editButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary"
|
||||
/>
|
||||
<span>
|
||||
|
||||
</span>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextSecondary coral coral-myEmail-unverified"
|
||||
>
|
||||
(Unverified)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-myEmail-editButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
className="CallOut-root CallOut-colorRegular coral coral-verifyEmail"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-itemGutter gutter"
|
||||
>
|
||||
<div>
|
||||
<i
|
||||
aria-hidden="true"
|
||||
className="Icon-root Icon-lg"
|
||||
>
|
||||
email
|
||||
</i>
|
||||
</div>
|
||||
<div>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading3 Typography-colorTextPrimary Typography-gutterBottom"
|
||||
>
|
||||
Verify your email address
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary"
|
||||
>
|
||||
An email has been sent to $email to verify your account.
|
||||
You must verify your new email address before it can be used
|
||||
to sign in to your account or to receive notifications.
|
||||
</p>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeRegular Button-colorPrimary Button-variantRegular ChangeEmailContainer-resendButton coral coral-verifyEmail-resendButton"
|
||||
data-color="primary"
|
||||
data-variant="regular"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Resend verification
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="coral coral-myPassword"
|
||||
data-testid="profile-account-changePassword"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignCenter"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark"
|
||||
>
|
||||
Password
|
||||
</h1>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-myPassword-editButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Edit
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="coral coral-ignoredCommenters"
|
||||
data-testid="profile-account-ignoredCommenters"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignCenter"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark"
|
||||
>
|
||||
Ignored Commenters
|
||||
</h1>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-ignoredComments-manageButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Manage
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="DownloadCommentsContainer-root coral coral-downloadCommentHistory"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignFlexStart"
|
||||
className="coral coral-ignoredCommenters"
|
||||
data-testid="profile-account-ignoredCommenters"
|
||||
>
|
||||
<div
|
||||
className="DownloadCommentsContainer-content"
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignCenter"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark DownloadCommentsContainer-title"
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark"
|
||||
>
|
||||
Download my comment history
|
||||
Ignored Commenters
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary DownloadCommentsContainer-description"
|
||||
>
|
||||
You will receive an email with a link to download your comment history.
|
||||
You can make
|
||||
<strong>
|
||||
one download request every 14 days.
|
||||
</strong>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-downloadCommentHistory-requestButton"
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-ignoredComments-manageButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Manage
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="DownloadCommentsContainer-root coral coral-downloadCommentHistory"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignFlexStart"
|
||||
>
|
||||
<div
|
||||
className="DownloadCommentsContainer-content"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark DownloadCommentsContainer-title"
|
||||
>
|
||||
Download my comment history
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary DownloadCommentsContainer-description"
|
||||
>
|
||||
You will receive an email with a link to download your comment history.
|
||||
You can make
|
||||
<strong>
|
||||
one download request every 14 days.
|
||||
</strong>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-downloadCommentHistory-requestButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Request
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="DeleteAccountContainer-root coral coral-deleteMyAccount"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignFlexStart"
|
||||
data-testid="profile-account-deleteAccount"
|
||||
>
|
||||
<div
|
||||
className="DeleteAccountContainer-content"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark DeleteAccountContainer-title"
|
||||
>
|
||||
Delete My Account
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary DeleteAccountContainer-section"
|
||||
>
|
||||
Deleting your account will permanently erase your profile and remove
|
||||
all your comments from this site.
|
||||
</p>
|
||||
</div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-deleteMyAccount-requestButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
@@ -420,48 +467,10 @@ You can make
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="DeleteAccountContainer-root coral coral-deleteMyAccount"
|
||||
>
|
||||
<div
|
||||
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignFlexStart"
|
||||
data-testid="profile-account-deleteAccount"
|
||||
>
|
||||
<div
|
||||
className="DeleteAccountContainer-content"
|
||||
>
|
||||
<h1
|
||||
className="Box-root Typography-root Typography-heading2 Typography-colorTextDark DeleteAccountContainer-title"
|
||||
>
|
||||
Delete My Account
|
||||
</h1>
|
||||
<p
|
||||
className="Box-root Typography-root Typography-bodyCopy Typography-colorTextPrimary DeleteAccountContainer-section"
|
||||
>
|
||||
Deleting your account will permanently erase your profile and remove
|
||||
all your comments from this site.
|
||||
</p>
|
||||
</div>
|
||||
<button
|
||||
className="BaseButton-root Button-root Button-sizeSmall Button-colorPrimary Button-variantOutlineFilled coral coral-deleteMyAccount-requestButton"
|
||||
data-color="primary"
|
||||
data-variant="outlineFilled"
|
||||
onBlur={[Function]}
|
||||
onClick={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseOut={[Function]}
|
||||
onMouseOver={[Function]}
|
||||
onTouchEnd={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Request
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -4,6 +4,7 @@ exports[`renders profile 1`] = `
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root HorizontalGutter-double"
|
||||
data-testid="profile-commentHistory"
|
||||
id="coral-profile-commentHistory-log"
|
||||
>
|
||||
<div
|
||||
className="Box-root HorizontalGutter-root HistoryComment-root coral coral-myComment HorizontalGutter-full"
|
||||
|
||||
@@ -14,6 +14,7 @@ interface Props extends ButtonHTMLAttributes<HTMLButtonElement> {
|
||||
|
||||
/** Internal: Forwarded Ref */
|
||||
forwardRef?: Ref<HTMLButtonElement>;
|
||||
"aria-label": string;
|
||||
}
|
||||
|
||||
const TooltipButton: FunctionComponent<Props> = ({
|
||||
@@ -21,6 +22,7 @@ const TooltipButton: FunctionComponent<Props> = ({
|
||||
className,
|
||||
toggleVisibility,
|
||||
forwardRef,
|
||||
"aria-label": ariaLabel,
|
||||
}) => (
|
||||
<BaseButton
|
||||
className={cn(styles.button, className)}
|
||||
@@ -28,6 +30,7 @@ const TooltipButton: FunctionComponent<Props> = ({
|
||||
evt.stopPropagation();
|
||||
toggleVisibility();
|
||||
}}
|
||||
aria-label={ariaLabel}
|
||||
ref={forwardRef}
|
||||
>
|
||||
<Icon color={active ? "primary" : "inherit"}>info</Icon>
|
||||
|
||||
@@ -58,6 +58,8 @@ comments-loadMore = Load More
|
||||
|
||||
comments-permalinkPopover =
|
||||
.description = A dialog showing a permalink to the comment
|
||||
comments-permalinkPopover-permalinkToComment =
|
||||
.aria-label = Permalink to comment
|
||||
comments-permalinkButton-share = Share
|
||||
comments-permalinkView-viewFullDiscussion = View Full Discussion
|
||||
comments-permalinkView-commentRemovedOrDoesNotExist = This comment has been removed or does not exist.
|
||||
@@ -263,6 +265,8 @@ profile-account-deleteAccount-pages-deleteButton = Delete my account
|
||||
profile-account-deleteAccount-pages-cancel = Cancel
|
||||
profile-account-deleteAccount-pages-proceed = Proceed
|
||||
profile-account-deleteAccount-pages-done = Done
|
||||
profile-account-deleteAccount-pages-phrase =
|
||||
.aria-label = Phrase
|
||||
|
||||
profile-account-deleteAccount-pages-descriptionHeader = Delete my account?
|
||||
profile-account-deleteAccount-pages-descriptionText =
|
||||
@@ -412,6 +416,11 @@ configure-messageBox-description =
|
||||
announcements relating to the comments on this story.
|
||||
configure-messageBox-preview = Preview
|
||||
configure-messageBox-selectAnIcon = Select an Icon
|
||||
configure-messageBox-iconConversation = Conversation
|
||||
configure-messageBox-iconDate = Date
|
||||
configure-messageBox-iconHelp = Help
|
||||
configure-messageBox-iconWarning = Warning
|
||||
configure-messageBox-iconChatBubble = Chat Bubble
|
||||
configure-messageBox-noIcon = No Icon
|
||||
configure-messageBox-writeAMessage = Write a Message
|
||||
|
||||
|
||||
Reference in New Issue
Block a user