Chat effects fixes for threads (#7183)
parent
a8a34ea756
commit
87201c8bfb
|
@ -139,9 +139,17 @@ export class Command {
|
||||||
return this.getCommand() + " " + this.args;
|
return this.getCommand() + " " + this.args;
|
||||||
}
|
}
|
||||||
|
|
||||||
run(roomId: string, args: string) {
|
run(roomId: string, threadId: string, args: string) {
|
||||||
// if it has no runFn then its an ignored/nop command (autocomplete only) e.g `/me`
|
// if it has no runFn then its an ignored/nop command (autocomplete only) e.g `/me`
|
||||||
if (!this.runFn) return reject(_t("Command error"));
|
if (!this.runFn) return reject(_t("Command error"));
|
||||||
|
|
||||||
|
const renderingType = threadId
|
||||||
|
? TimelineRenderingType.Thread
|
||||||
|
: TimelineRenderingType.Room;
|
||||||
|
if (this.renderingTypes && !this.renderingTypes?.includes(renderingType)) {
|
||||||
|
return reject(_t("Command error"));
|
||||||
|
}
|
||||||
|
|
||||||
return this.runFn.bind(this)(roomId, args);
|
return this.runFn.bind(this)(roomId, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -321,7 +321,9 @@ class EditMessageComposer extends React.Component<IEditMessageComposerProps, ISt
|
||||||
}
|
}
|
||||||
|
|
||||||
private async runSlashCommand(cmd: Command, args: string, roomId: string): Promise<void> {
|
private async runSlashCommand(cmd: Command, args: string, roomId: string): Promise<void> {
|
||||||
const result = cmd.run(roomId, args);
|
const threadId = this.props.editState?.getEvent()?.getThread()?.id || null;
|
||||||
|
|
||||||
|
const result = cmd.run(roomId, threadId, args);
|
||||||
let messageContent;
|
let messageContent;
|
||||||
let error = result.error;
|
let error = result.error;
|
||||||
if (result.promise) {
|
if (result.promise) {
|
||||||
|
|
|
@ -350,7 +350,11 @@ export class SendMessageComposer extends React.Component<ISendMessageComposerPro
|
||||||
}
|
}
|
||||||
|
|
||||||
private async runSlashCommand(cmd: Command, args: string): Promise<void> {
|
private async runSlashCommand(cmd: Command, args: string): Promise<void> {
|
||||||
const result = cmd.run(this.props.room.roomId, args);
|
const threadId = this.props.relation?.rel_type === RelationType.Thread
|
||||||
|
? this.props.relation?.event_id
|
||||||
|
: null;
|
||||||
|
|
||||||
|
const result = cmd.run(this.props.room.roomId, threadId, args);
|
||||||
let messageContent;
|
let messageContent;
|
||||||
let error = result.error;
|
let error = result.error;
|
||||||
if (result.promise) {
|
if (result.promise) {
|
||||||
|
@ -495,7 +499,7 @@ export class SendMessageComposer extends React.Component<ISendMessageComposerPro
|
||||||
// For initial threads launch, chat effects are disabled
|
// For initial threads launch, chat effects are disabled
|
||||||
// see #19731
|
// see #19731
|
||||||
const isNotThread = this.props.relation?.rel_type !== RelationType.Thread;
|
const isNotThread = this.props.relation?.rel_type !== RelationType.Thread;
|
||||||
if (!SettingsStore.getValue("feature_thread") || !isNotThread) {
|
if (!SettingsStore.getValue("feature_thread") || isNotThread) {
|
||||||
dis.dispatch({ action: `effects.${effect.command}` });
|
dis.dispatch({ action: `effects.${effect.command}` });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,7 +168,7 @@ export class StopGapWidgetDriver extends WidgetDriver {
|
||||||
// For initial threads launch, chat effects are disabled
|
// For initial threads launch, chat effects are disabled
|
||||||
// see #19731
|
// see #19731
|
||||||
const isNotThread = content["m.relates_to"].rel_type !== RelationType.Thread;
|
const isNotThread = content["m.relates_to"].rel_type !== RelationType.Thread;
|
||||||
if (!SettingsStore.getValue("feature_thread") || !isNotThread) {
|
if (!SettingsStore.getValue("feature_thread") || isNotThread) {
|
||||||
dis.dispatch({ action: `effects.${effect.command}` });
|
dis.dispatch({ action: `effects.${effect.command}` });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue