decord/alpha/source/stores/ChannelSettingsStore.tsx
2026-10-10 08:08:14 +00:00

525 lines
17 KiB
TypeScript

// Module ID: 9697
// Function ID: 9698
// Name: ChannelSettingsStore
// Dependencies: [2069, 8498, 1404, 2065, 1085, 1125, 4762, 4764, 2074, 2075, 1295, 584, 12, 2079, 4702, 504, 2]
// Module 9697 (ChannelSettingsStore)
import _mod12 from "module_12" /* 12 */;
import get_initializedDefault from "get initialized" /* 504 */;
import DispatcherDefault from "Dispatcher" /* 584 */;
import ThreadConstants from "ThreadConstants" /* 1125 */;
import HTTPUtils from "HTTPUtils" /* 1295 */;
import ChannelRecord from "ChannelRecord" /* 2069 */;
import ThreadSortOrder from "ThreadSortOrder" /* 2074 */;
import ForumLayout from "ForumLayout" /* 2075 */;
import GuildRecordUtils from "GuildRecordUtils" /* 2079 */;
import _modDef4702 from "module_4702" /* 4702 */;
import ReactionUtils from "ReactionUtils" /* 4762 */;
import UnicodeEmojisDefault from "UnicodeEmojis" /* 4764 */;
import InviteRecord from "InviteRecord" /* 8498 */;
import UserRecord from "UserRecord" /* 1404 */;
import ChannelStore from "ChannelStore" /* 2065 */;
import Constants from "Constants" /* 1085 */;
import size from "module_2" /* 2 */;
const module_12 = _mod12;
let OVERVIEW, channel, closure_5, closure_7, set, set2, set3, subsection;
let FormStates;
let closure_14;
let closure_15;
let map1;
const f102132 = (body) => {
c21 = false;
const obj = DispatcherDefault;
const obj2 = { type: "CHANNEL_SETTINGS_LOADED_INVITES", invites: body.body };
obj.dispatch(obj2);
};
const f102133 = () => {
c21 = false;
return false;
};
function normalizeChannelPropertyForCompare(item, toJSResult, type) {
let obj3;
let str = toJSResult;
if ("topic_" === item) {
if (str == null) {
str = "";
}
return str;
} else if ("defaultAutoArchiveDuration" === item) {
let tmp21 = str;
if (str == null) {
tmp21 = closure_17;
}
return tmp21;
} else if ("defaultSortOrder" === item) {
let LATEST_ACTIVITY = str;
if (str == null) {
LATEST_ACTIVITY = ThreadSortOrder.ThreadSortOrder.LATEST_ACTIVITY;
}
return LATEST_ACTIVITY;
} else if ("defaultForumLayout" === item) {
if (type === constants2.GUILD_MEDIA) {
return ForumLayout.ForumLayout.GRID;
} else {
let LIST;
if (null == str) {
LIST = ForumLayout.ForumLayout.LIST;
} else {
LIST = str;
}
return LIST;
}
} else {
if ("rateLimitPerUser_" !== item) {
if ("defaultThreadRateLimitPerUser" !== item) {
if ("defaultReactionEmoji" === item) {
let tmp2 = null;
if (null != str) {
const obj = ReactionUtils;
if (obj.isCustomReactionEmojiId(str.emojiId)) {
tmp2 = { emojiId: str.emojiId };
const obj2 = { emojiId: str.emojiId };
} else {
const emojiName = str.emojiName;
let tmp5 = null;
if (null != emojiName) {
tmp5 = null;
if ("" !== emojiName) {
const obj4 = { emojiName: obj3.translateInlineEmojiToSurrogates(emojiName) };
tmp5 = obj4;
obj3 = UnicodeEmojisDefault;
}
}
tmp2 = tmp5;
}
}
return tmp2;
} else {
return str;
}
}
}
let num = str;
if (str == null) {
num = 0;
}
return num;
}
}
function _createInvite(code) {
let fromInviteGuildResult;
let tmp2;
const obj = { code: code.code, temporary: code.temporary, revoked: code.revoked, inviter: tmp2, channel: closure_9(code.channel), guild: fromInviteGuildResult, uses: null, maxUses: null, maxAge: null, createdAt: _modDef4702(code.created_at), type: null, roles: null };
tmp2 = null;
const tmp = InviteRecord;
if (null != code.inviter) {
const self = this;
const self2 = this;
tmp2 = new UserRecord(code.inviter);
}
fromInviteGuildResult = null;
if (null != code.guild) {
const obj2 = GuildRecordUtils;
fromInviteGuildResult = obj2.fromInviteGuild(code.guild);
}
({ uses: obj.uses, max_uses: obj.maxUses, max_age: obj.maxAge } = code);
({ type: obj.type, roles: obj.roles } = code);
const tmp4 = new tmp(obj);
return tmp4;
}
function _syncChannelUpdate(id) {
let flag = false;
if (null != closure_5) {
flag = false;
if (closure_5.id === id) {
if (closure_5 === channel) {
channel = ChannelStore.getChannel(id);
flag = false;
const obj2 = ChannelStore;
if (null != channel) {
closure_5 = channel;
let channel2 = obj2.getChannel(channel.parent_id);
flag = true;
}
} else {
const channel1 = ChannelStore.getChannel(id);
flag = false;
const obj3 = ChannelStore;
if (null != channel1) {
closure_5 = channel1;
flag = true;
if (null != channel) {
const result = channel.set("permissionOverwrites", closure_5.permissionOverwrites);
channel = result.set("availableTags", closure_5.availableTags);
channel2 = obj3.getChannel(channel.parent_id);
flag = true;
}
}
}
}
}
let tmp10 = !flag;
if (flag) {
tmp10 = null == channel;
}
let flag2 = !tmp10;
if (flag2) {
flag2 = true;
const tmp13 = null != overwriteId && null == channel.permissionOverwrites[overwriteId];
if (tmp13) {
overwriteId = channel.getGuildId();
flag2 = true;
}
}
return flag2;
}
function handleOverwriteUpdate(channelId) {
return _syncChannelUpdate(channelId.channelId);
}
let closure_9 = ChannelRecord.createChannelRecordFromInvite;
({ ChannelSettingsSections: map1, ChannelTypes: closure_14, Endpoints: closure_15, FormStates } = Constants);
let closure_17 = ThreadConstants.DEFAULT_AUTO_ARCHIVE_DURATION;
let CLOSED = FormStates.CLOSED;
let errors = {};
let invites = {};
let c21 = false;
let c22 = false;
let _location = null;
let closure_24 = ["name", "type", "topic_", "bitrate_", "userLimit_", "nsfw_", "flags_", "rateLimitPerUser_", "defaultThreadRateLimitPerUser", "defaultAutoArchiveDuration", "template", "defaultReactionEmoji", "rtcRegion", "videoQualityMode", "threadMetadata", "banner", "availableTags", "defaultSortOrder", "defaultForumLayout", "defaultTagSetting", "iconEmoji", "themeColor", "application_id"];
let closure_26 = module_12.debounce(() => {
let closure_6;
if (null != channel) {
if (null != closure_5) {
let tmp = channel;
const toJSResult = channel.toJS();
require = toJSResult;
let tmp3 = closure_5;
let closure_1 = closure_5.toJS();
const type = toJSResult.type;
const everyResult = closure_24.every((item) => {
const tmp = closure_1[item];
const tmp2 = normalizeChannelPropertyForCompare(item, require[item], type);
const tmp3 = normalizeChannelPropertyForCompare(item, tmp, type);
const obj = module_12;
return obj.isEqual(tmp2, tmp3);
}) && channel !== closure_5;
if (everyResult) {
channel = closure_5;
channelSettingsStore.emitChange();
}
}
}
return false;
}, 500);
const Store = get_initializedDefault.Store;
class ChannelSettingsStore extends Store {
initialize() {
this.waitFor(ChannelStore);
}
hasChanges() {
return channel !== closure_5;
}
isOpen() {
return c22;
}
getSection() {
return OVERVIEW;
}
getInvites() {
invites = { invites, loading };
return invites;
}
showNotice() {
return this.hasChanges();
}
getChannel() {
return channel;
}
getFormState() {
return CLOSED;
}
getCategory() {
return closure_7;
}
getProps() {
invites = { submitting: CLOSED === FormStates.SUBMITTING, errors, channel, section: OVERVIEW, subsection, invites, selectedOverwriteId: overwriteId, hasChanges: this.hasChanges(), analyticsLocation: _location };
return invites;
}
}
const prototype = ChannelSettingsStore.prototype;
ChannelSettingsStore.displayName = "ChannelSettingsStore";
invites = {
CHANNEL_SETTINGS_INIT: function handleSettingsInit(channelId) {
let obj = ChannelStore;
channel = ChannelStore.getChannel(channelId.channelId);
if (null == channel) {
c22 = false;
CLOSED = FormStates.CLOSED;
OVERVIEW = null;
closure_5 = null;
channel = null;
let channel2 = null;
obj = {};
} else {
let tmp11;
CLOSED = FormStates.OPEN;
closure_5 = channel;
_location = null;
if ("location" in channelId) {
_location = null;
if (null != channelId.location) {
_location = channelId.location;
}
}
subsection = null;
if ("subsection" in channelId) {
subsection = channelId.subsection;
}
let closure_4 = subsection;
if (null != channel) {
channel = channel.set("nsfw", channel.isNSFW());
}
channel2 = obj.getChannel(channel.parent_id);
overwriteId = channel.getGuildId();
if (channel.isModeratorReportChannel()) {
OVERVIEW = tmp10.PERMISSIONS;
tmp11 = tmp10;
} else {
OVERVIEW = tmp10.OVERVIEW;
tmp11 = tmp10;
}
let closure_19 = {};
let tmp12 = OVERVIEW;
if (OVERVIEW == null) {
tmp12 = OVERVIEW;
}
OVERVIEW = tmp12;
const tmp15 = null != channel && OVERVIEW === tmp11.INSTANT_INVITES;
if (tmp15) {
let c21 = true;
const HTTP = HTTPUtils.HTTP;
let obj2 = { url: authStore3.INSTANT_INVITES(channel.id), oldFormErrors: true, rejectWithError: true };
const get = HTTP.get;
const value = get(obj2);
value.then(f102132, f102133);
}
return true;
}
},
CHANNEL_SETTINGS_SUBMIT: function handleSettingsSubmit() {
CLOSED = FormStates.SUBMITTING;
let closure_19 = {};
},
CHANNEL_SETTINGS_SUBMIT_SUCCESS: function handleSettingsSubmitSuccess() {
closure_5 = channel;
CLOSED = FormStates.OPEN;
},
CHANNEL_SETTINGS_SUBMIT_FAILURE: function handleSettingsSubmitFailure(errors) {
const OPEN = FormStates.OPEN;
errors = errors.errors;
const _Object = Object;
if (errors == null) {
errors = {};
}
const keys1 = keys(errors);
let closure_19 = keys1.reduce((acc, item) => {
const obj2 = _mod12;
if (obj2.isArray(errors.errors[item])) {
acc[item] = errors.errors[item].join("\n");
} else {
acc[item] = errors.errors[item];
}
return acc;
}, {});
},
CHANNEL_SETTINGS_CLOSE: function handleSettingsClose() {
c22 = false;
CLOSED = FormStates.CLOSED;
OVERVIEW = null;
closure_5 = null;
let closure_6 = null;
closure_7 = null;
},
CHANNEL_PERMISSIONS_PUT_OVERWRITE_SUCCESS: handleOverwriteUpdate,
CHANNEL_PERMISSIONS_DELETE_OVERWRITE_SUCCESS: handleOverwriteUpdate,
CHANNEL_SETTINGS_OVERWRITE_SELECT: function handlePermissionOverwriteSelect(overwriteId) {
overwriteId = overwriteId.overwriteId;
},
CHANNEL_SETTINGS_UPDATE: function handleSettingsUpdate(arg0) {
let applicationId;
let autoArchiveDuration;
let availableTags;
let bitrate;
let channelType;
let defaultAutoArchiveDuration;
let defaultForumLayout;
let defaultReactionEmoji;
let defaultSortOrder;
let defaultTagSetting;
let defaultThreadRateLimitPerUser;
let flags;
let iconEmoji;
let invitable;
let locked;
let name;
let nsfw;
let rateLimitPerUser;
let rtcRegion;
let template;
let themeColor;
let topic;
let userLimit;
let videoQualityMode;
({ name, channelType, topic, bitrate, userLimit, nsfw, flags, rateLimitPerUser, defaultThreadRateLimitPerUser, autoArchiveDuration, locked, invitable, defaultAutoArchiveDuration, template, defaultReactionEmoji, rtcRegion, videoQualityMode, availableTags, defaultSortOrder, defaultForumLayout, defaultTagSetting, iconEmoji, themeColor, applicationId } = arg0);
if (null == channel) {
return false;
} else {
if (null != name) {
channel = channel.set("name", name);
}
if (null != topic) {
channel = channel.set("topic", topic);
}
if (null != bitrate) {
channel = channel.set("bitrate", bitrate);
}
if (null != userLimit) {
channel = channel.set("userLimit", userLimit);
}
if (null != nsfw) {
channel = channel.set("nsfw", nsfw);
}
if (null != flags) {
channel = channel.set("flags", flags);
}
if (null != rateLimitPerUser) {
channel = channel.set("rateLimitPerUser", rateLimitPerUser);
}
if (null != defaultThreadRateLimitPerUser) {
channel = channel.set("defaultThreadRateLimitPerUser", defaultThreadRateLimitPerUser);
}
if (null != autoArchiveDuration) {
const obj = { autoArchiveDuration };
set = channel.set;
const merged = Object.assign(channel.threadMetadata);
channel = set("threadMetadata", obj);
}
if (null != locked) {
const obj2 = { locked };
set2 = channel.set;
const merged1 = Object.assign(channel.threadMetadata);
channel = set2("threadMetadata", obj2);
}
if (null != invitable) {
const obj3 = { invitable };
set3 = channel.set;
const merged2 = Object.assign(channel.threadMetadata);
channel = set3("threadMetadata", obj3);
}
if (null != defaultAutoArchiveDuration) {
channel = channel.set("defaultAutoArchiveDuration", defaultAutoArchiveDuration);
}
if (null != template) {
channel = channel.set("template", template);
}
if (null != channelType) {
channel = channel.set("type", channelType);
}
if (undefined !== rtcRegion) {
channel = channel.set("rtcRegion", rtcRegion);
}
if (null != videoQualityMode) {
channel = channel.set("videoQualityMode", videoQualityMode);
}
if (undefined !== defaultReactionEmoji) {
channel = channel.set("defaultReactionEmoji", defaultReactionEmoji);
}
if (null != availableTags) {
channel = channel.set("availableTags", availableTags);
}
if (null != defaultSortOrder) {
channel = channel.set("defaultSortOrder", defaultSortOrder);
}
if (null != defaultTagSetting) {
channel = channel.set("defaultTagSetting", defaultTagSetting);
}
if (null != defaultForumLayout) {
channel = channel.set("defaultForumLayout", defaultForumLayout);
}
if (undefined !== iconEmoji) {
channel = channel.set("iconEmoji", iconEmoji);
}
if (null != themeColor) {
channel = channel.set("themeColor", themeColor);
}
if (undefined !== applicationId) {
channel = channel.set("application_id", applicationId);
}
closure_26();
}
},
CHANNEL_SETTINGS_SET_SECTION: function handleSetSection(arg0) {
let closure_4;
({ section: OVERVIEW, subsection: closure_4 } = arg0);
const tmp = null != channel && OVERVIEW === map1.INSTANT_INVITES;
if (tmp) {
let c21 = true;
const HTTP = HTTPUtils.HTTP;
const get = HTTP.get;
const obj = { url: authStore3.INSTANT_INVITES(channel.id), oldFormErrors: true, rejectWithError: true };
const value = get(obj);
value.then(f102132, f102133);
}
},
CHANNEL_SETTINGS_LOADED_INVITES: function handleLoadedInvites(invites) {
invites = invites.invites;
const item = invites.forEach((code) => {
invites[code.code] = _createInvite(code);
});
},
CHANNEL_UPDATES: function handleChannelUpdates(channels) {
channels = channels.channels;
if (null == channel) {
return false;
} else {
let flag = false;
const tmp2 = channels[Symbol.iterator]();
while (tmp2 !== undefined) {
let tmp7 = _syncChannelUpdate(tmp4.id) || flag;
flag = tmp7;
continue;
}
return flag;
}
},
THREAD_UPDATE: function handleThreadUpdate(arg0) {
const tmp2 = null != channel && _syncChannelUpdate(tmp.id);
return tmp2;
},
CHANNEL_DELETE: function handleChannelDelete(arg0) {
let tmp2 = null != channel;
if (tmp2) {
if (channel.id === tmp) {
CLOSED = FormStates.CLOSED;
}
tmp2 = tmp4;
}
return tmp2;
},
INSTANT_INVITE_REVOKE_SUCCESS: function handleInviteRevoke(arg0) {
const obj = {};
const merged = Object.assign(obj);
delete obj[arg0.code];
},
INSTANT_INVITE_CREATE_SUCCESS: function handleInviteCreateSuccess(invite) {
const obj = {};
const merged = Object.assign(obj);
obj[invite.invite.code] = _createInvite(invite.invite);
}
};
const channelSettingsStore = new ChannelSettingsStore(DispatcherDefault, invites);
let result = size.fileFinishedImporting("stores/ChannelSettingsStore.tsx");
export default channelSettingsStore;