add fallback reply for poll start (#10380)
This commit is contained in:
parent
a86a8e7f8e
commit
5211b628d6
3 changed files with 28 additions and 2 deletions
|
@ -21,7 +21,8 @@ import escapeHtml from "escape-html";
|
||||||
import { THREAD_RELATION_TYPE } from "matrix-js-sdk/src/models/thread";
|
import { THREAD_RELATION_TYPE } from "matrix-js-sdk/src/models/thread";
|
||||||
import { MsgType } from "matrix-js-sdk/src/@types/event";
|
import { MsgType } from "matrix-js-sdk/src/@types/event";
|
||||||
import { M_BEACON_INFO } from "matrix-js-sdk/src/@types/beacon";
|
import { M_BEACON_INFO } from "matrix-js-sdk/src/@types/beacon";
|
||||||
import { M_POLL_END } from "matrix-js-sdk/src/@types/polls";
|
import { M_POLL_END, M_POLL_START } from "matrix-js-sdk/src/@types/polls";
|
||||||
|
import { PollStartEvent } from "matrix-js-sdk/src/extensible_events_v1/PollStartEvent";
|
||||||
|
|
||||||
import { PERMITTED_URL_SCHEMES } from "../HtmlUtils";
|
import { PERMITTED_URL_SCHEMES } from "../HtmlUtils";
|
||||||
import { makeUserPermalink, RoomPermalinkCreator } from "./permalinks/Permalinks";
|
import { makeUserPermalink, RoomPermalinkCreator } from "./permalinks/Permalinks";
|
||||||
|
@ -112,6 +113,16 @@ export function getNestedReplyText(
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (M_POLL_START.matches(ev.getType())) {
|
||||||
|
const extensibleEvent = ev.unstableExtensibleEvent as PollStartEvent;
|
||||||
|
const question = extensibleEvent?.question?.text;
|
||||||
|
return {
|
||||||
|
html:
|
||||||
|
`<mx-reply><blockquote><a href="${evLink}">In reply to</a> <a href="${userLink}">${mxid}</a>` +
|
||||||
|
`<br>Poll: ${question}</blockquote></mx-reply>`,
|
||||||
|
body: `> <${mxid}> started poll: ${question}\n\n`,
|
||||||
|
};
|
||||||
|
}
|
||||||
if (M_POLL_END.matches(ev.getType())) {
|
if (M_POLL_END.matches(ev.getType())) {
|
||||||
return {
|
return {
|
||||||
html:
|
html:
|
||||||
|
|
|
@ -26,7 +26,7 @@ import {
|
||||||
stripHTMLReply,
|
stripHTMLReply,
|
||||||
stripPlainReply,
|
stripPlainReply,
|
||||||
} from "../src/utils/Reply";
|
} from "../src/utils/Reply";
|
||||||
import { mkEvent } from "./test-utils";
|
import { makePollStartEvent, mkEvent } from "./test-utils";
|
||||||
import { RoomPermalinkCreator } from "../src/utils/permalinks/Permalinks";
|
import { RoomPermalinkCreator } from "../src/utils/permalinks/Permalinks";
|
||||||
|
|
||||||
function makeTestEvent(type: string, content: IContent): MatrixEvent {
|
function makeTestEvent(type: string, content: IContent): MatrixEvent {
|
||||||
|
@ -160,6 +160,12 @@ But this is not
|
||||||
|
|
||||||
expect(getNestedReplyText(event, mockPermalinkGenerator)).toMatchSnapshot();
|
expect(getNestedReplyText(event, mockPermalinkGenerator)).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should create the expected fallback text for poll start events", () => {
|
||||||
|
const event = makePollStartEvent("Will this test pass?", "@user:server.org");
|
||||||
|
|
||||||
|
expect(getNestedReplyText(event, mockPermalinkGenerator)).toMatchSnapshot();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("shouldDisplayReply", () => {
|
describe("shouldDisplayReply", () => {
|
||||||
|
|
|
@ -53,3 +53,12 @@ exports[`Reply getNestedReplyText should create the expected fallback text for p
|
||||||
"html": "<mx-reply><blockquote><a href="$$permalink$$">In reply to</a> <a href="https://matrix.to/#/@user1:server">@user1:server</a><br>Ended poll</blockquote></mx-reply>",
|
"html": "<mx-reply><blockquote><a href="$$permalink$$">In reply to</a> <a href="https://matrix.to/#/@user1:server">@user1:server</a><br>Ended poll</blockquote></mx-reply>",
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`Reply getNestedReplyText should create the expected fallback text for poll start events 1`] = `
|
||||||
|
{
|
||||||
|
"body": "> <@user:server.org> started poll: Will this test pass?
|
||||||
|
|
||||||
|
",
|
||||||
|
"html": "<mx-reply><blockquote><a href="$$permalink$$">In reply to</a> <a href="https://matrix.to/#/@user:server.org">@user:server.org</a><br>Poll: Will this test pass?</blockquote></mx-reply>",
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
Loading…
Reference in a new issue