This commit is contained in:
tungdo0602
2025-06-30 22:23:32 +07:00
parent 2e4542c069
commit fd9c0e0d0f
11 changed files with 206 additions and 210 deletions

View File

@@ -1,52 +1,52 @@
'use strict';
const BaseMessageComponent = require('./BaseMessageComponent');
const UnfurledMediaItem = require('./UnfurledMediaItem');
const { MessageComponentTypes } = require('../util/Constants');
class ThumbnailComponent extends BaseMessageComponent {
/**
* @property {UnfurledMediaItem} [media] A url or attachment
* @property {String} [description] Alt text for the media, max 1024 characters
* @property {Boolean} [spoiler] Whether the thumbnail should be a spoiler (or blurred out). Defaults to false
*/
/**
* @param {ThumbnailComponent | APIThumbnailComponent} [data={}] The data
*/
constructor(data = {}) {
super({ type: 'THUMBNAIL' }, data);
/**
* A url or attachment
* @type {UnfurledMediaItem}
*/
this.media = new UnfurledMediaItem(data.media);
/**
* Alt text for the media, max 1024 characters
* @type {String}
*/
this.description = data.description ?? null;
/**
* Whether the thumbnail should be a spoiler (or blurred out). Defaults to false
* @type {Boolean}
*/
this.spoiler = data.spoiler ?? false;
}
/**
* @returns {APIThumbnailComponent}
*/
toJSON() {
return {
type: MessageComponentTypes[this.type],
media: this.media.toJSON(),
description: this.description,
spoiler: this.spoiler,
};
}
}
module.exports = ThumbnailComponent;
'use strict';
const BaseMessageComponent = require('./BaseMessageComponent');
const UnfurledMediaItem = require('./UnfurledMediaItem');
const { MessageComponentTypes } = require('../util/Constants');
class ThumbnailComponent extends BaseMessageComponent {
/**
* @property {UnfurledMediaItem} [media] A url or attachment
* @property {String} [description] Alt text for the media, max 1024 characters
* @property {Boolean} [spoiler] Whether the thumbnail should be a spoiler (or blurred out). Defaults to false
*/
/**
* @param {ThumbnailComponent | APIThumbnailComponent} [data={}] The data
*/
constructor(data = {}) {
super({ type: 'THUMBNAIL' }, data);
/**
* A url or attachment
* @type {UnfurledMediaItem}
*/
this.media = new UnfurledMediaItem(data.media);
/**
* Alt text for the media, max 1024 characters
* @type {String}
*/
this.description = data.description ?? null;
/**
* Whether the thumbnail should be a spoiler (or blurred out). Defaults to false
* @type {Boolean}
*/
this.spoiler = data.spoiler ?? false;
}
/**
* @returns {APIThumbnailComponent}
*/
toJSON() {
return {
type: MessageComponentTypes[this.type],
media: this.media.toJSON(),
description: this.description,
spoiler: this.spoiler,
};
}
}
module.exports = ThumbnailComponent;