Files
discord-decomp/records/GuildBoostSlotRecord.tsx
T
2026-11-01 12:12:55 +02:00

41 lines
1.5 KiB
TypeScript

// Metro module 4087 (f4088).
import Record from "../lib/Record";
import { $callWithNewTarget } from "../_hermes/prelude";
class GuildBoostSlotRecord extends Record {
constructor(a0) {
super();
this.id = a0.id;
this.subscriptionId = a0.subscriptionId;
this.premiumGuildSubscription = a0.premiumGuildSubscription;
this.canceled = a0.canceled;
this.cooldownEndsAt = a0.cooldownEndsAt;
this.subscription = a0.subscription;
}
static createFromServer(a0, a1) {
const { id, subscription_id } = a0;
const premiumGuildSubscription = a0.premium_guild_subscription != null ? {
id: a0.premium_guild_subscription.id,
guildId: a0.premium_guild_subscription.guild_id
} : null;
const { canceled, cooldown_ends_at } = a0;
const prototypeOf = Object.getPrototypeOf(GuildBoostSlotRecord);
const r8 = Object.create(GuildBoostSlotRecord.prototype);
const r23 = $callWithNewTarget(prototypeOf, r8, GuildBoostSlotRecord);
const r24 = r23 instanceof Object ? r23 : r8;
r24.id = id;
r24.subscriptionId = subscription_id;
r24.premiumGuildSubscription = premiumGuildSubscription;
r24.canceled = canceled;
r24.cooldownEndsAt = cooldown_ends_at;
r24.subscription = a1;
return r24;
}
isOnCooldown() {
return this.cooldownEndsAt != null && new Date(this.cooldownEndsAt).getTime() >= Date.now();
}
isAvailable() {
return this.premiumGuildSubscription == null && !this.isOnCooldown();
}
}
export default GuildBoostSlotRecord;