mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 05:25:40 +09:00
feat(message): remove the unfinished scheduled messages feature (#2233)
This commit is contained in:
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();
|
||||
Reference in new issue
Block a user