feat(scheduled): add "Send now" action to the scheduled-messages tray
Fire a pending scheduled message immediately via MSC4140 action:'send' (the server dispatches the stored delayed event now, as a normal timeline event) instead of having to cancel and retype. - sendScheduledMessageNow(mx, delayId) mirrors cancel/restart with action:'send' - handleSendNow reuses the per-row busy guard; prunes local state only once the server confirms; a failed send shows an inline "Could not send now" error with the message still sendable/editable/cancellable - Send-now IconButton (Icons.Send) added before Edit/Cancel in each row Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -53,3 +53,19 @@ export async function restartScheduledMessage(mx: MatrixClient, delayId: string)
|
||||
{ prefix: '/_matrix/client/unstable/org.matrix.msc4140' },
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a scheduled message immediately via MSC4140 (`action: 'send'`) — the
|
||||
* server dispatches the stored delayed event now, as a normal timeline event,
|
||||
* instead of waiting for its timeout.
|
||||
*/
|
||||
export async function sendScheduledMessageNow(mx: MatrixClient, delayId: string): Promise<void> {
|
||||
const path = `/delayed_events/${encodeURIComponent(delayId)}`;
|
||||
await mx.http.authedRequest(
|
||||
Method.Post,
|
||||
path,
|
||||
undefined,
|
||||
{ action: 'send' },
|
||||
{ prefix: '/_matrix/client/unstable/org.matrix.msc4140' },
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user