= props => {
return (
{
},
body: "Woof",
createdAt: "1995-12-17T03:24:00.000Z",
+ pending: false,
},
indentLevel: 1,
showAuthPopup: noop as any,
@@ -45,6 +46,7 @@ it("renders body only", () => {
},
body: "Woof",
createdAt: "1995-12-17T03:24:00.000Z",
+ pending: false,
},
indentLevel: 1,
showAuthPopup: noop as any,
diff --git a/src/core/client/stream/containers/CommentContainer.tsx b/src/core/client/stream/containers/CommentContainer.tsx
index 21b4b767e..15d9b3eda 100644
--- a/src/core/client/stream/containers/CommentContainer.tsx
+++ b/src/core/client/stream/containers/CommentContainer.tsx
@@ -57,6 +57,7 @@ export class CommentContainer extends Component
{
@@ -38,6 +40,7 @@ exports[`renders username and body 1`] = `
"username": "Marvin",
}
}
+ blur={false}
body="Woof"
createdAt="1995-12-17T03:24:00.000Z"
footer={
@@ -55,6 +58,7 @@ exports[`renders username and body 1`] = `
id="comment-id"
indentLevel={1}
me={null}
+ pending={false}
showAuthPopup={[Function]}
/>
diff --git a/src/core/client/stream/index.tsx b/src/core/client/stream/index.tsx
index 31fade961..7dde43c00 100644
--- a/src/core/client/stream/index.tsx
+++ b/src/core/client/stream/index.tsx
@@ -3,46 +3,40 @@ import React from "react";
import { StatelessComponent } from "react";
import ReactDOM from "react-dom";
-import {
- createContext,
- TalkContext,
- TalkContextProvider,
-} from "talk-framework/lib/bootstrap";
+import { createManaged } from "talk-framework/lib/bootstrap";
import AppContainer from "./containers/AppContainer";
import {
- onPostMessageAuthError,
- onPostMessageSetAuthToken,
- onPymSetCommentID,
+ OnPostMessageAuthError,
+ OnPostMessageSetAuthToken,
+ OnPymSetCommentID,
} from "./listeners";
import { initLocalState } from "./local";
import localesData from "./locales";
-const listeners = [
- onPymSetCommentID,
- onPostMessageSetAuthToken,
- onPostMessageAuthError,
-];
-
-// This is called when the context is first initialized.
-async function init(context: TalkContext) {
- await initLocalState(context.relayEnvironment, context);
- listeners.forEach(f => f(context));
-}
+const listeners = (
+ <>
+
+
+
+ >
+);
async function main() {
- // Bootstrap our context.
- const context = await createContext({
- init,
+ const ManagedTalkContextProvider = await createManaged({
+ initLocalState,
localesData,
userLocales: navigator.languages,
pym: new PymChild({ polling: 100 }),
});
const Index: StatelessComponent = () => (
-
-
-
+
+ <>
+ {listeners}
+
+ >
+
);
ReactDOM.render(, document.getElementById("app"));
diff --git a/src/core/client/stream/listeners/OnPostMessageAuthError.tsx b/src/core/client/stream/listeners/OnPostMessageAuthError.tsx
new file mode 100644
index 000000000..3bb851965
--- /dev/null
+++ b/src/core/client/stream/listeners/OnPostMessageAuthError.tsx
@@ -0,0 +1,28 @@
+import { Component } from "react";
+
+import { withContext } from "talk-framework/lib/bootstrap";
+import { PostMessageService } from "talk-framework/lib/postMessage";
+
+interface Props {
+ postMessage: PostMessageService;
+}
+
+class OnPostMessageAuthError extends Component {
+ constructor(props: Props) {
+ super(props);
+ // Auth popup will use this to send back errors during login.
+ props.postMessage!.on("authError", error => {
+ // tslint:disable-next-line:no-console
+ console.error(error);
+ });
+ }
+
+ public render() {
+ return null;
+ }
+}
+
+const enhanced = withContext(({ postMessage }) => ({ postMessage }))(
+ OnPostMessageAuthError
+);
+export default enhanced;
diff --git a/src/core/client/stream/listeners/onPostMessageSetAuthToken.spec.ts b/src/core/client/stream/listeners/OnPostMessageSetAuthToken.spec.tsx
similarity index 57%
rename from src/core/client/stream/listeners/onPostMessageSetAuthToken.spec.ts
rename to src/core/client/stream/listeners/OnPostMessageSetAuthToken.spec.tsx
index c35823c8a..da2eb5816 100644
--- a/src/core/client/stream/listeners/onPostMessageSetAuthToken.spec.ts
+++ b/src/core/client/stream/listeners/OnPostMessageSetAuthToken.spec.tsx
@@ -1,10 +1,14 @@
+import { shallow } from "enzyme";
+import { noop } from "lodash";
+import React from "react";
import { Environment, RecordSource } from "relay-runtime";
+import { TalkContext } from "talk-framework/lib/bootstrap";
import { LOCAL_ID } from "talk-framework/lib/relay";
-import { createInMemoryStorage } from "talk-framework/lib/storage";
+import { createPromisifiedStorage } from "talk-framework/lib/storage";
import { createRelayEnvironment } from "talk-framework/testHelpers";
-import onPostMessageSetAuthToken from "./onPostMessageSetAuthToken";
+import { OnPostMessageSetAuthToken } from "./OnPostMessageSetAuthToken";
let relayEnvironment: Environment;
const source: RecordSource = new RecordSource();
@@ -17,16 +21,17 @@ beforeAll(() => {
it("Sets auth token", () => {
const token = "auth-token";
- const context = {
+ const context: Partial = {
postMessage: {
on: (name: string, cb: (token: string) => void) => {
expect(name).toBe("setAuthToken");
cb(token);
},
- },
+ } as any,
relayEnvironment,
- localStorage: createInMemoryStorage(),
+ localStorage: createPromisifiedStorage(),
+ clearSession: noop,
};
- onPostMessageSetAuthToken(context as any);
+ shallow();
expect(source.get(LOCAL_ID)!.authToken).toEqual(token);
});
diff --git a/src/core/client/stream/listeners/OnPostMessageSetAuthToken.ts b/src/core/client/stream/listeners/OnPostMessageSetAuthToken.ts
new file mode 100644
index 000000000..553e4fa5b
--- /dev/null
+++ b/src/core/client/stream/listeners/OnPostMessageSetAuthToken.ts
@@ -0,0 +1,31 @@
+import { Component } from "react";
+
+import { TalkContext, withContext } from "talk-framework/lib/bootstrap";
+import { commit as setAuthToken } from "talk-framework/mutations/SetAuthTokenMutation";
+
+interface Props {
+ context: TalkContext;
+}
+
+export class OnPostMessageSetAuthToken extends Component {
+ constructor(props: Props) {
+ super(props);
+ // Auth popup will use this to handle a successful login.
+ props.context.postMessage!.on("setAuthToken", (authToken: string) => {
+ setAuthToken(
+ this.props.context.relayEnvironment,
+ { authToken },
+ this.props.context
+ );
+ });
+ }
+
+ public render() {
+ return null;
+ }
+}
+
+const enhanced = withContext(context => ({ context }))(
+ OnPostMessageSetAuthToken
+);
+export default enhanced;
diff --git a/src/core/client/stream/listeners/onPymSetCommentID.spec.ts b/src/core/client/stream/listeners/OnPymSetCommentID.spec.tsx
similarity index 77%
rename from src/core/client/stream/listeners/onPymSetCommentID.spec.ts
rename to src/core/client/stream/listeners/OnPymSetCommentID.spec.tsx
index 6b5e67ea2..20132c1f7 100644
--- a/src/core/client/stream/listeners/onPymSetCommentID.spec.ts
+++ b/src/core/client/stream/listeners/OnPymSetCommentID.spec.tsx
@@ -1,9 +1,11 @@
+import { shallow } from "enzyme";
+import React from "react";
import { Environment, RecordSource } from "relay-runtime";
import { LOCAL_ID } from "talk-framework/lib/relay";
import { createRelayEnvironment } from "talk-framework/testHelpers";
-import onPymSetCommentID from "./onPymSetCommentID";
+import { OnPymSetCommentID } from "./OnPymSetCommentID";
let relayEnvironment: Environment;
const source: RecordSource = new RecordSource();
@@ -16,30 +18,30 @@ beforeAll(() => {
it("Sets comment id", () => {
const id = "comment1-id";
- const context = {
+ const props = {
pym: {
onMessage: (eventName: string, cb: (id: string) => void) => {
expect(eventName).toBe("setCommentID");
cb(id);
},
- },
+ } as any,
relayEnvironment,
};
- onPymSetCommentID(context as any);
+ shallow();
expect(source.get(LOCAL_ID)!.commentID).toEqual(id);
});
it("Sets comment id to null when empty", () => {
const id = "";
- const context = {
+ const props = {
pym: {
onMessage: (eventName: string, cb: (data: string) => void) => {
expect(eventName).toBe("setCommentID");
cb(id);
},
- },
+ } as any,
relayEnvironment,
};
- onPymSetCommentID(context as any);
+ shallow();
expect(source.get(LOCAL_ID)!.commentID).toEqual(null);
});
diff --git a/src/core/client/stream/listeners/OnPymSetCommentID.ts b/src/core/client/stream/listeners/OnPymSetCommentID.ts
new file mode 100644
index 000000000..f9ca0c6f5
--- /dev/null
+++ b/src/core/client/stream/listeners/OnPymSetCommentID.ts
@@ -0,0 +1,39 @@
+import { Child } from "pym.js";
+import { Component } from "react";
+import { commitLocalUpdate } from "react-relay";
+import { Environment } from "relay-runtime";
+
+import { withContext } from "talk-framework/lib/bootstrap";
+import { LOCAL_ID } from "talk-framework/lib/relay";
+
+interface Props {
+ relayEnvironment: Environment;
+ pym: Child;
+}
+
+export class OnPymSetCommentID extends Component {
+ constructor(props: Props) {
+ super(props);
+
+ // Sets comment id through pym.
+ props.pym!.onMessage("setCommentID", raw => {
+ commitLocalUpdate(this.props.relayEnvironment, s => {
+ const id = raw || null;
+ if (s.get(LOCAL_ID)!.getValue("commentID") !== id) {
+ s.get(LOCAL_ID)!.setValue(id, "commentID");
+ }
+ });
+ });
+ }
+
+ public render() {
+ return null;
+ }
+}
+
+const enhanced = withContext(({ relayEnvironment, pym }) => ({
+ relayEnvironment,
+ pym,
+}))(OnPymSetCommentID);
+
+export default enhanced;
diff --git a/src/core/client/stream/listeners/index.ts b/src/core/client/stream/listeners/index.ts
index 7901544e0..1c315d81f 100644
--- a/src/core/client/stream/listeners/index.ts
+++ b/src/core/client/stream/listeners/index.ts
@@ -1,5 +1,5 @@
-export { default as onPymSetCommentID } from "./onPymSetCommentID";
+export { default as OnPymSetCommentID } from "./OnPymSetCommentID";
export {
- default as onPostMessageSetAuthToken,
-} from "./onPostMessageSetAuthToken";
-export { default as onPostMessageAuthError } from "./onPostMessageAuthError";
+ default as OnPostMessageSetAuthToken,
+} from "./OnPostMessageSetAuthToken";
+export { default as OnPostMessageAuthError } from "./OnPostMessageAuthError";
diff --git a/src/core/client/stream/listeners/onPostMessageAuthError.ts b/src/core/client/stream/listeners/onPostMessageAuthError.ts
deleted file mode 100644
index 668a4ba1f..000000000
--- a/src/core/client/stream/listeners/onPostMessageAuthError.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { TalkContext } from "talk-framework/lib/bootstrap";
-
-export default function onPostMessageSetAuthToken({
- postMessage,
-}: TalkContext) {
- // Auth popup will use this to send back errors during login.
- postMessage!.on("authError", error => {
- // tslint:disable-next-line:no-console
- console.error(error);
- });
-}
diff --git a/src/core/client/stream/listeners/onPostMessageSetAuthToken.ts b/src/core/client/stream/listeners/onPostMessageSetAuthToken.ts
deleted file mode 100644
index 767af51f7..000000000
--- a/src/core/client/stream/listeners/onPostMessageSetAuthToken.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { TalkContext } from "talk-framework/lib/bootstrap";
-
-import { commit as setAuthToken } from "talk-framework/mutations/SetAuthTokenMutation";
-
-export default function onPostMessageSetAuthToken(ctx: TalkContext) {
- const { relayEnvironment, postMessage } = ctx;
- // Auth popup will use this to handle a successful login.
- postMessage!.on("setAuthToken", (authToken: string) => {
- setAuthToken(relayEnvironment, { authToken }, ctx);
- });
-}
diff --git a/src/core/client/stream/listeners/onPymSetCommentID.ts b/src/core/client/stream/listeners/onPymSetCommentID.ts
deleted file mode 100644
index 4b5547173..000000000
--- a/src/core/client/stream/listeners/onPymSetCommentID.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { commitLocalUpdate } from "react-relay";
-
-import { TalkContext } from "talk-framework/lib/bootstrap";
-import { LOCAL_ID } from "talk-framework/lib/relay";
-
-export default function onPymSetCommentID({
- relayEnvironment,
- pym,
-}: TalkContext) {
- // Sets comment id through pym.
- pym!.onMessage("setCommentID", raw => {
- commitLocalUpdate(relayEnvironment, s => {
- const id = raw || null;
- if (s.get(LOCAL_ID)!.getValue("commentID") !== id) {
- s.get(LOCAL_ID)!.setValue(id, "commentID");
- }
- });
- });
-}
diff --git a/src/core/client/stream/local/__snapshots__/initLocalState.spec.ts.snap b/src/core/client/stream/local/__snapshots__/initLocalState.spec.ts.snap
index b95cc19ce..c8dda11c7 100644
--- a/src/core/client/stream/local/__snapshots__/initLocalState.spec.ts.snap
+++ b/src/core/client/stream/local/__snapshots__/initLocalState.spec.ts.snap
@@ -13,7 +13,6 @@ exports[`init local state 1`] = `
\\"__id\\": \\"client:root.local\\",
\\"__typename\\": \\"Local\\",
\\"authToken\\": \\"\\",
- \\"authRevision\\": 0,
\\"network\\": {
\\"__ref\\": \\"client:root.local.network\\"
},
diff --git a/src/core/client/stream/local/initLocalState.ts b/src/core/client/stream/local/initLocalState.ts
index 2d953e6ae..5b127755d 100644
--- a/src/core/client/stream/local/initLocalState.ts
+++ b/src/core/client/stream/local/initLocalState.ts
@@ -35,9 +35,6 @@ export default async function initLocalState(
// Set auth token
localRecord.setValue(authToken || "", "authToken");
- // Set initial auth revision, this is increment whenenver auth state might have changed.
- localRecord.setValue(0, "authRevision");
-
// Parse query params
const query = qs.parse(location.search);
diff --git a/src/core/client/stream/local/local.graphql b/src/core/client/stream/local/local.graphql
index 9c2585ebf..37615ec9d 100644
--- a/src/core/client/stream/local/local.graphql
+++ b/src/core/client/stream/local/local.graphql
@@ -15,6 +15,10 @@ type AuthPopup {
view: View
}
+extend type Comment {
+ pending: Boolean
+}
+
type Local {
network: Network!
assetID: String
@@ -22,10 +26,6 @@ type Local {
commentID: String
authPopup: AuthPopup!
authToken: String
- # Used to invalidate the `me` endpoint.
- # This is incremented whenever the auth status
- # might have changed.
- authRevision: Int!
}
extend type Query {
diff --git a/src/core/client/stream/mutations/CreateCommentMutation.ts b/src/core/client/stream/mutations/CreateCommentMutation.ts
index a293a58e7..2d173bd07 100644
--- a/src/core/client/stream/mutations/CreateCommentMutation.ts
+++ b/src/core/client/stream/mutations/CreateCommentMutation.ts
@@ -72,6 +72,7 @@ function commit(
) {
const me = getMe(environment)!;
const currentDate = new Date().toISOString();
+ const id = uuidGenerator();
return commitMutationPromiseNormalized(environment, {
mutation,
variables: {
@@ -85,7 +86,7 @@ function commit(
edge: {
cursor: currentDate,
node: {
- id: uuidGenerator(),
+ id,
createdAt: currentDate,
author: {
id: me.id,
@@ -97,6 +98,9 @@ function commit(
clientMutationId: (clientMutationId++).toString(),
},
} as any, // TODO: (cvle) generated types should contain one for the optimistic response.
+ optimisticUpdater: store => {
+ store.get(id)!.setValue(true, "pending");
+ },
configs: getConfig(input),
});
}
diff --git a/src/core/client/stream/queries/PermalinkViewQuery.tsx b/src/core/client/stream/queries/PermalinkViewQuery.tsx
index fc098dafe..4d1ac4611 100644
--- a/src/core/client/stream/queries/PermalinkViewQuery.tsx
+++ b/src/core/client/stream/queries/PermalinkViewQuery.tsx
@@ -45,19 +45,12 @@ export const render = ({
};
const PermalinkViewQuery: StatelessComponent = ({
- local: { commentID, assetID, authRevision },
+ local: { commentID, assetID },
}) => (
query={graphql`
- query PermalinkViewQuery(
- $commentID: ID!
- $assetID: ID!
- $authRevision: Int!
- ) {
- # authRevision is increment every time auth state has changed.
- # This is basically a cache invalidation and causes relay
- # to automatically update this query.
- me(clientAuthRevision: $authRevision) {
+ query PermalinkViewQuery($commentID: ID!, $assetID: ID!) {
+ me {
...PermalinkViewContainer_me
}
asset(id: $assetID) {
@@ -71,7 +64,6 @@ const PermalinkViewQuery: StatelessComponent = ({
variables={{
assetID: assetID!,
commentID: commentID!,
- authRevision,
}}
render={render}
/>
@@ -81,7 +73,6 @@ const enhanced = withLocalStateContainer(
graphql`
fragment PermalinkViewQueryLocal on Local {
assetID
- authRevision
commentID
}
`
diff --git a/src/core/client/stream/queries/StreamQuery.tsx b/src/core/client/stream/queries/StreamQuery.tsx
index b0f1f0c3f..ec61ec723 100644
--- a/src/core/client/stream/queries/StreamQuery.tsx
+++ b/src/core/client/stream/queries/StreamQuery.tsx
@@ -38,15 +38,12 @@ export const render = ({
};
const StreamQuery: StatelessComponent = ({
- local: { assetID, authRevision },
+ local: { assetID },
}) => (
query={graphql`
- query StreamQuery($assetID: ID!, $authRevision: Int!) {
- # authRevision is increment every time auth state has changed.
- # This is basically a cache invalidation and causes relay
- # to automatically update this query.
- me(clientAuthRevision: $authRevision) {
+ query StreamQuery($assetID: ID!) {
+ me {
...StreamContainer_me
}
asset(id: $assetID) {
@@ -56,7 +53,6 @@ const StreamQuery: StatelessComponent = ({
`}
variables={{
assetID: assetID!,
- authRevision,
}}
render={render}
/>
@@ -66,7 +62,6 @@ const enhanced = withLocalStateContainer(
graphql`
fragment StreamQueryLocal on Local {
assetID
- authRevision
}
`
)(StreamQuery);
diff --git a/src/core/client/stream/test/__snapshots__/loadMore.spec.tsx.snap b/src/core/client/stream/test/__snapshots__/loadMore.spec.tsx.snap
index 2b6612877..1d82d7bb9 100644
--- a/src/core/client/stream/test/__snapshots__/loadMore.spec.tsx.snap
+++ b/src/core/client/stream/test/__snapshots__/loadMore.spec.tsx.snap
@@ -149,52 +149,56 @@ exports[`loads more comments 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
@@ -202,52 +206,56 @@ exports[`loads more comments 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Lukas
-
-
-
-
-
-
+
+
+
+
+
+
@@ -255,52 +263,56 @@ exports[`loads more comments 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Isabelle
-
-
-
-
-
-
+
+
+
+
+
+
@@ -458,52 +470,56 @@ exports[`renders comment stream 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
@@ -511,52 +527,56 @@ exports[`renders comment stream 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Lukas
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/core/client/stream/test/__snapshots__/permalinkView.spec.tsx.snap b/src/core/client/stream/test/__snapshots__/permalinkView.spec.tsx.snap
index a53c3f1e4..19ba2686a 100644
--- a/src/core/client/stream/test/__snapshots__/permalinkView.spec.tsx.snap
+++ b/src/core/client/stream/test/__snapshots__/permalinkView.spec.tsx.snap
@@ -24,52 +24,56 @@ exports[`renders permalink view 1`] = `
Show all comments
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
@@ -225,52 +229,56 @@ exports[`show all comments 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/core/client/stream/test/__snapshots__/permalinkViewCommentNotFound.spec.tsx.snap b/src/core/client/stream/test/__snapshots__/permalinkViewCommentNotFound.spec.tsx.snap
index 475a485da..931557b1a 100644
--- a/src/core/client/stream/test/__snapshots__/permalinkViewCommentNotFound.spec.tsx.snap
+++ b/src/core/client/stream/test/__snapshots__/permalinkViewCommentNotFound.spec.tsx.snap
@@ -181,52 +181,56 @@ exports[`show all comments 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/core/client/stream/test/__snapshots__/postComment.spec.tsx.snap b/src/core/client/stream/test/__snapshots__/postComment.spec.tsx.snap
index f4dae1d35..dacf75add 100644
--- a/src/core/client/stream/test/__snapshots__/postComment.spec.tsx.snap
+++ b/src/core/client/stream/test/__snapshots__/postComment.spec.tsx.snap
@@ -182,52 +182,56 @@ exports[`post a comment: optimistic response 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
Hello world!",
- }
- }
- />
-
-
+
+
+
Hello world!",
+ }
+ }
+ />
+
+
+
@@ -235,52 +239,56 @@ exports[`post a comment: optimistic response 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
@@ -288,52 +296,56 @@ exports[`post a comment: optimistic response 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Lukas
-
-
-
-
-
-
+
+
+
+
+
+
@@ -530,52 +542,56 @@ exports[`post a comment: server response 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
Hello world! (from server)",
- }
- }
- />
-
-
+
+
+
Hello world! (from server)",
+ }
+ }
+ />
+
+
+
@@ -583,52 +599,56 @@ exports[`post a comment: server response 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
@@ -636,52 +656,56 @@ exports[`post a comment: server response 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Lukas
-
-
-
-
-
-
+
+
+
+
+
+
@@ -878,52 +902,56 @@ exports[`renders comment stream 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+
@@ -931,52 +959,56 @@ exports[`renders comment stream 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Lukas
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/core/client/stream/test/__snapshots__/postReply.spec.tsx.snap b/src/core/client/stream/test/__snapshots__/postReply.spec.tsx.snap
index 0e6c5d219..63360eccb 100644
--- a/src/core/client/stream/test/__snapshots__/postReply.spec.tsx.snap
+++ b/src/core/client/stream/test/__snapshots__/postReply.spec.tsx.snap
@@ -188,52 +188,56 @@ exports[`post a reply: open reply form 1`] = `
className="HorizontalGutter-root HorizontalGutter-full"
>
-
- Markus
-
-
-
-
-
-
+
+
+
+
+
+