Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit a2c5a59

Browse files
authored
Fix replying using chat effect commands (#9101)
1 parent c0d69e1 commit a2c5a59

File tree

4 files changed

+16
-17
lines changed

4 files changed

+16
-17
lines changed

src/SlashCommands.tsx

+11-13
Original file line numberDiff line numberDiff line change
@@ -1305,19 +1305,17 @@ export const Commands = [
13051305
description: effect.description(),
13061306
args: '<message>',
13071307
runFn: function(roomId, args) {
1308-
return success((async () => {
1309-
if (!args) {
1310-
args = effect.fallbackMessage();
1311-
MatrixClientPeg.get().sendEmoteMessage(roomId, args);
1312-
} else {
1313-
const content = {
1314-
msgtype: effect.msgType,
1315-
body: args,
1316-
};
1317-
MatrixClientPeg.get().sendMessage(roomId, content);
1318-
}
1319-
dis.dispatch({ action: `effects.${effect.command}` });
1320-
})());
1308+
let content: IContent;
1309+
if (!args) {
1310+
content = ContentHelpers.makeEmoteMessage(effect.fallbackMessage());
1311+
} else {
1312+
content = {
1313+
msgtype: effect.msgType,
1314+
body: args,
1315+
};
1316+
}
1317+
dis.dispatch({ action: `effects.${effect.command}` });
1318+
return successSync(content);
13211319
},
13221320
category: CommandCategories.effects,
13231321
renderingTypes: [TimelineRenderingType.Room],

src/components/views/rooms/EditMessageComposer.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ class EditMessageComposer extends React.Component<IEditMessageComposerProps, ISt
337337
return; // errored
338338
}
339339

340-
if (cmd.category === CommandCategories.messages) {
340+
if (cmd.category === CommandCategories.messages || cmd.category === CommandCategories.effects) {
341341
editContent["m.new_content"] = content;
342342
} else {
343343
shouldSend = false;

src/components/views/rooms/SendMessageComposer.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -358,12 +358,13 @@ export class SendMessageComposer extends React.Component<ISendMessageComposerPro
358358
return; // errored
359359
}
360360

361-
if (cmd.category === CommandCategories.messages) {
361+
if (cmd.category === CommandCategories.messages || cmd.category === CommandCategories.effects) {
362362
attachRelation(content, this.props.relation);
363363
if (replyToEvent) {
364364
addReplyToMessageContent(content, replyToEvent, {
365365
permalinkCreator: this.props.permalinkCreator,
366-
includeLegacyFallback: true,
366+
// Exclude the legacy fallback for custom event types such as those used by /fireworks
367+
includeLegacyFallback: content.msgtype?.startsWith("m.") ?? true,
367368
});
368369
}
369370
} else {

src/editor/commands.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export async function runSlashCommand(
6565
let error = result.error;
6666
if (result.promise) {
6767
try {
68-
if (cmd.category === CommandCategories.messages) {
68+
if (cmd.category === CommandCategories.messages || cmd.category === CommandCategories.effects) {
6969
messageContent = await result.promise;
7070
} else {
7171
await result.promise;

0 commit comments

Comments
 (0)