feat(message): remove the unfinished scheduled messages feature (#2233)

This commit is contained in:
Hampus authored and GitHub committed 2026-08-31 13:32:55 +02:00
1 parent eeea391b63
commit 3c8466d714
125 files changed
+17 -3730

No files matched your search

@@ -1,44 +0,0 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import type {ScheduledMessage, ScheduledMessagePayload} from '@app/features/messaging/models/ScheduledMessage';
import {makeAutoObservable} from 'mobx';
interface ScheduledMessageEditState {
scheduledMessageId: string;
channelId: string;
payload: ScheduledMessagePayload;
scheduledLocalAt: string;
timezone: string;
}
class ScheduledMessageEditor {
private state: ScheduledMessageEditState | null = null;
constructor() {
makeAutoObservable(this, {}, {autoBind: true});
}
startEditing(record: ScheduledMessage): void {
this.state = {
scheduledMessageId: record.id,
channelId: record.channelId,
payload: record.payload,
scheduledLocalAt: record.scheduledLocalAt,
timezone: record.timezone,
};
}
stopEditing(): void {
this.state = null;
}
isEditingChannel(channelId: string): boolean {
return this.state?.channelId === channelId;
}
getEditingState(): ScheduledMessageEditState | null {
return this.state;
}
}
export default new ScheduledMessageEditor();
@@ -1,61 +0,0 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import type {ScheduledMessage} from '@app/features/messaging/models/ScheduledMessage';
import {makeAutoObservable} from 'mobx';
class ScheduledMessages {
scheduledMessages: Array<ScheduledMessage> = [];
fetched = false;
fetching = false;
constructor() {
makeAutoObservable(this, {}, {autoBind: true});
}
get hasScheduledMessages(): boolean {
return this.scheduledMessages.length > 0;
}
fetchStart(): void {
this.fetching = true;
}
fetchSuccess(messages: Array<ScheduledMessage>): void {
this.scheduledMessages = sortScheduledMessages(messages);
this.fetching = false;
this.fetched = true;
}
fetchError(): void {
this.fetching = false;
this.fetched = false;
this.scheduledMessages = [];
}
handleGatewayReady(): void {
this.scheduledMessages = [];
this.fetched = false;
this.fetching = false;
}
upsert(message: ScheduledMessage): void {
const existingIndex = this.scheduledMessages.findIndex((entry) => entry.id === message.id);
const next = [...this.scheduledMessages];
if (existingIndex === -1) {
next.push(message);
} else {
next[existingIndex] = message;
}
this.scheduledMessages = sortScheduledMessages(next);
}
remove(messageId: string): void {
this.scheduledMessages = this.scheduledMessages.filter((message) => message.id !== messageId);
}
}
function sortScheduledMessages(messages: Array<ScheduledMessage>): Array<ScheduledMessage> {
return [...messages].sort((a, b) => a.scheduledAt.getTime() - b.scheduledAt.getTime());
}
export default new ScheduledMessages();