decord/source/stores/ChannelSettingsStore.tsx
github-actions 777dc50a28 chore: update source for alpha 346.3
Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4790.js (118.4 MB)
2026-09-10 19:12:31 +00:00

494 lines
16 KiB
TypeScript

// Module ID: 8696
// Function ID: 8697
// Name: ChannelSettingsStore
// Dependencies: [1961, 8445, 1385, 1957, 1074, 1113, 4255, 4257, 1966, 1967, 1272, 573, 12, 1971, 4196, 504, 2]
// Module 8696 (ChannelSettingsStore)
import initializeDefault from "initialize" /* 504 */;
import DispatcherDefault from "Dispatcher" /* 573 */;
import ThreadConstants from "ThreadConstants" /* 1113 */;
import HTTPUtils from "HTTPUtils" /* 1272 */;
import ChannelRecord from "ChannelRecord" /* 1961 */;
import ThreadSortOrder from "ThreadSortOrder" /* 1966 */;
import ForumLayout from "ForumLayout" /* 1967 */;
import GuildRecordUtils from "GuildRecordUtils" /* 1971 */;
import _modDef4196 from "module_4196" /* 4196 */;
import ReactionUtils from "ReactionUtils" /* 4255 */;
import UnicodeEmojisDefault from "UnicodeEmojis" /* 4257 */;
import InviteRecord from "InviteRecord" /* 8445 */;
import UserRecord from "UserRecord" /* 1385 */;
import ChannelStore from "ChannelStore" /* 1957 */;
import Constants from "Constants" /* 1074 */;
import apply from "module_12" /* 12 */;
import size from "module_2" /* 2 */;
function normalizeChannelPropertyForCompare(item, toJSResult, type) {
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 {
if (null == str) {
let 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) {
if (obj.isCustomReactionEmojiId(str.emojiId)) {
const obj2 = { emojiId: str.emojiId };
tmp2 = obj2;
} else {
const emojiName = str.emojiName;
let tmp5 = null;
if (null != emojiName) {
tmp5 = null;
if ("" !== emojiName) {
const obj4 = { emojiName: UnicodeEmojisDefault.translateInlineEmojiToSurrogates(emojiName) };
tmp5 = obj4;
}
}
tmp2 = tmp5;
}
obj = ReactionUtils;
}
return tmp2;
} else {
return str;
}
}
}
let num = str;
if (str == null) {
num = 0;
}
return num;
}
}
function _createInvite(code) {
const obj = { code: code.code, temporary: code.temporary, revoked: code.revoked, inviter: null, channel: null, guild: null, uses: null, maxUses: null, maxAge: null, createdAt: null, type: null, roles: null };
let tmp2 = null;
if (null != code.inviter) {
tmp2 = new UserRecord(code.inviter);
}
obj.inviter = tmp2;
obj.channel = closure_9(code.channel);
let fromInviteGuildResult = null;
if (null != code.guild) {
fromInviteGuildResult = GuildRecordUtils.fromInviteGuild(code.guild);
}
obj.guild = fromInviteGuildResult;
({ uses: obj.uses, max_uses: obj.maxUses, max_age: obj.maxAge } = code);
obj.createdAt = _modDef4196(code.created_at);
({ type: obj.type, roles: obj.roles } = code);
return new InviteRecord(obj);
}
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;
if (null != channel) {
closure_5 = channel;
let channel2 = obj2.getChannel(channel.parent_id);
flag = true;
}
obj2 = ChannelStore;
} else {
const channel1 = ChannelStore.getChannel(id);
flag = false;
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;
}
}
obj3 = ChannelStore;
}
}
}
let tmp10 = !flag;
if (flag) {
tmp10 = null == channel;
}
let flag2 = !tmp10;
if (!tmp10) {
let tmp13 = null != overwriteId;
if (tmp13) {
tmp13 = null == channel.permissionOverwrites[overwriteId];
}
flag2 = true;
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 = apply.debounce(() => {
if (null != channel) {
if (null != closure_5) {
const toJSResult = channel.toJS();
require = toJSResult;
closure_1 = closure_5.toJS();
const type = toJSResult.type;
let everyResult = closure_24.every((item) => {
const tmp = normalizeChannelPropertyForCompare(item, toJSResult[item], type);
const tmp2 = normalizeChannelPropertyForCompare(item, closure_1[item], type);
return apply.isEqual(tmp, tmp2);
});
if (everyResult) {
everyResult = channel !== closure_5;
}
if (everyResult) {
channel = closure_5;
channelSettingsStore.emitChange();
}
}
}
return false;
}, 500);
const Store = initializeDefault.Store;
class ChannelSettingsStore extends Store {
}
const prototype = ChannelSettingsStore.prototype;
prototype["initialize"] = function initialize() {
this.waitFor(ChannelStore);
};
prototype["hasChanges"] = function hasChanges() {
return closure_6 !== closure_5;
};
prototype["isOpen"] = function isOpen() {
return c22;
};
prototype["getSection"] = function getSection() {
return OVERVIEW;
};
prototype["getInvites"] = function getInvites() {
invites = { invites, loading };
return invites;
};
prototype["showNotice"] = function showNotice() {
return this.hasChanges();
};
prototype["getChannel"] = function getChannel() {
return closure_6;
};
prototype["getFormState"] = function getFormState() {
return CLOSED;
};
prototype["getCategory"] = function getCategory() {
return closure_7;
};
prototype["getProps"] = function getProps() {
invites = { submitting: CLOSED === FormStates.SUBMITTING, errors, channel, section: OVERVIEW, subsection, invites, selectedOverwriteId: overwriteId, hasChanges: this.hasChanges(), analyticsLocation: _location };
return invites;
};
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 {
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;
}
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;
let tmp11 = tmp10;
} else {
OVERVIEW = tmp10.OVERVIEW;
tmp11 = tmp10;
}
closure_19 = {};
let tmp12 = OVERVIEW;
if (OVERVIEW == null) {
tmp12 = OVERVIEW;
}
OVERVIEW = tmp12;
let tmp15 = null != channel;
if (tmp15) {
tmp15 = OVERVIEW === tmp11.INSTANT_INVITES;
}
if (tmp15) {
c21 = true;
const HTTP = HTTPUtils.HTTP;
const obj2 = { url: __initData.INSTANT_INVITES(channel.id), oldFormErrors: true, rejectWithError: true };
value = HTTP.get(obj2);
value.then((body) => {
c21 = false;
DispatcherDefault.dispatch({ type: "CHANNEL_SETTINGS_LOADED_INVITES", invites: body.body });
}, () => {
c21 = false;
return false;
});
}
return true;
}
},
CHANNEL_SETTINGS_SUBMIT: function handleSettingsSubmit() {
CLOSED = FormStates.SUBMITTING;
closure_19 = {};
},
CHANNEL_SETTINGS_SUBMIT_SUCCESS: function handleSettingsSubmitSuccess() {
closure_5 = closure_6;
CLOSED = FormStates.OPEN;
},
CHANNEL_SETTINGS_SUBMIT_FAILURE: function handleSettingsSubmitFailure(errors) {
const OPEN = FormStates.OPEN;
errors = errors.errors;
if (errors == null) {
errors = {};
}
const keys = Object.keys(errors);
closure_19 = keys.reduce((acc, item) => {
if (obj2.isArray(errors.errors[item])) {
acc[item] = obj.join("\n");
} else {
acc[item] = obj;
}
return acc;
}, {});
},
CHANNEL_SETTINGS_CLOSE: function handleSettingsClose() {
c22 = false;
CLOSED = FormStates.CLOSED;
OVERVIEW = null;
closure_5 = null;
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) {
({ 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 = {};
const merged = Object.assign(channel.threadMetadata);
obj.autoArchiveDuration = autoArchiveDuration;
channel = channel.set("threadMetadata", obj);
}
if (null != locked) {
const obj2 = {};
const merged1 = Object.assign(channel.threadMetadata);
obj2.locked = locked;
channel = channel.set("threadMetadata", obj2);
}
if (null != invitable) {
const obj3 = {};
const merged2 = Object.assign(channel.threadMetadata);
obj3.invitable = invitable;
channel = channel.set("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 (null != applicationId) {
channel = channel.set("application_id", applicationId);
}
closure_26();
}
},
CHANNEL_SETTINGS_SET_SECTION: function handleSetSection(arg0) {
({ section: OVERVIEW, subsection: closure_4 } = arg0);
let tmp = null != channel;
if (tmp) {
tmp = OVERVIEW === constants.INSTANT_INVITES;
}
if (tmp) {
c21 = true;
const HTTP = HTTPUtils.HTTP;
const obj = { url: __initData.INSTANT_INVITES(channel.id), oldFormErrors: true, rejectWithError: true };
value = HTTP.get(obj);
value.then((body) => {
c21 = false;
DispatcherDefault.dispatch({ type: "CHANNEL_SETTINGS_LOADED_INVITES", invites: body.body });
}, () => {
c21 = false;
return false;
});
}
},
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 == closure_6) {
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) {
let tmp2 = null != closure_6;
if (tmp2) {
tmp2 = _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 tmp2[tmp];
},
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;