mirror of
https://github.com/stoatchat/javascript-client-sdk.git
synced 2026-07-19 17:13:31 -04:00
feat: add support for Message flags
This commit is contained in:
Generated
+1755
-1550
File diff suppressed because it is too large
Load Diff
@@ -132,6 +132,12 @@ export type ClientOptions = Partial<EventClientOptions> & {
|
||||
*/
|
||||
autoReconnect: boolean;
|
||||
|
||||
/**
|
||||
* Whether to rewrite sent messages that include identifiers such as @silent
|
||||
* @default true
|
||||
*/
|
||||
messageRewrites: boolean;
|
||||
|
||||
/**
|
||||
* Retry delay function
|
||||
* @param retryCount Count
|
||||
@@ -192,6 +198,7 @@ export class Client extends EventEmitter<Events> {
|
||||
eagerFetching: true,
|
||||
syncUnreads: false,
|
||||
autoReconnect: true,
|
||||
messageRewrites: true,
|
||||
/**
|
||||
* Retry delay function
|
||||
* @param retryCount Count
|
||||
|
||||
@@ -478,6 +478,13 @@ export class Channel {
|
||||
const msg: DataMessageSend =
|
||||
typeof data === "string" ? { content: data } : data;
|
||||
|
||||
// Mark as silent message
|
||||
if (msg.content?.startsWith("@silent ")) {
|
||||
msg.content = msg.content.substring(8);
|
||||
msg.flags ||= 1;
|
||||
msg.flags |= 1;
|
||||
}
|
||||
|
||||
const message = await this.#collection.client.api.post(
|
||||
`/channels/${this.id as ""}/messages`,
|
||||
msg,
|
||||
|
||||
@@ -193,6 +193,13 @@ export class Message {
|
||||
return this.#collection.getUnderlyingObject(this.id).masquerade;
|
||||
}
|
||||
|
||||
/**
|
||||
* Flags
|
||||
*/
|
||||
get flags() {
|
||||
return this.#collection.getUnderlyingObject(this.id).flags || 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the username for this message
|
||||
*/
|
||||
@@ -250,6 +257,13 @@ export class Message {
|
||||
return avatar ? this.#collection.client.proxyFile(avatar) : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether this message has suppressed desktop/push notifications
|
||||
*/
|
||||
get isSuppressed() {
|
||||
return (this.flags & 1) === 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit a message
|
||||
* @param data Message edit route data
|
||||
|
||||
@@ -29,6 +29,7 @@ export type HydratedMessage = {
|
||||
reactions: ReactiveMap<string, ReactiveSet<string>>;
|
||||
interactions?: API.Interactions;
|
||||
masquerade?: API.Masquerade;
|
||||
flags?: number;
|
||||
};
|
||||
|
||||
export const messageHydration: Hydrate<Merge<API.Message>, HydratedMessage> = {
|
||||
@@ -71,6 +72,7 @@ export const messageHydration: Hydrate<Merge<API.Message>, HydratedMessage> = {
|
||||
},
|
||||
interactions: (message) => message.interactions,
|
||||
masquerade: (message) => message.masquerade!,
|
||||
flags: (message) => message.flags!,
|
||||
},
|
||||
initialHydration: () => ({
|
||||
reactions: new ReactiveMap(),
|
||||
|
||||
Reference in New Issue
Block a user