475 lines
16 KiB
TypeScript
475 lines
16 KiB
TypeScript
// Metro module 10214 (f10215).
|
|
import { THREAD_CHANNEL_TYPES } from "../../records/ChannelRecord";
|
|
import ChannelStore from "../../stores/ChannelStore";
|
|
import PermissionStore from "../../stores/PermissionStore";
|
|
import FavoriteStore from "./FavoriteStore";
|
|
import { FAVORITES_UNCATEGORIZED_PARENT_ID, MAX_FAVORITE_CHANNELS } from "./FavoritesConstants";
|
|
import { Permissions } from "../../_bundle/Module505";
|
|
import * as _Module1306 from "../../_bundle/Module1306";
|
|
import { FavoriteChannelType } from "../../_bundle/Module1306";
|
|
import { UInt32Value, BoolValue } from "../../_bundle/Module1337";
|
|
import Module12 from "../../_bundle/Module12";
|
|
import { getFavoritesAccess } from "./FavoritesHooks";
|
|
import AlertActionCreators from "../../actions/AlertActionCreators";
|
|
import { intl, t } from "../../intl/index.native";
|
|
import { PreloadedUserSettingsActionCreators, UserSettingsDelay, removeDismissedContent } from "../user_settings/UserSettingsProtoActionCreators";
|
|
import { trackFavoritesGuildRemoveFromFavorites, trackFavoritesGuildAddToFavorites, trackFavoritesGuildOrderUpdated, trackFavoritesGuildVisibilitySettingToggled } from "./FavoritesAnalytics";
|
|
import { isFavoritesGuildCategoryNameValid } from "./FavoritesUtils";
|
|
import SnowflakeUtils from "../../utils/SnowflakeUtils";
|
|
import { FAVORITES_GUILD_DISMISSIBLE_CONTENT } from "./FavoritesDismissibleContent";
|
|
function $mk84185($env) {
|
|
return (a0) => {
|
|
let r38;
|
|
const r13 = $env;
|
|
let r3 = false;
|
|
let r2 = r13[2][Symbol.iterator]();
|
|
const next = r2.next;
|
|
const r40 = $env.$parent;
|
|
while (true) {
|
|
const r41 = r2 === void 0 ? void 0 : (r38 = next.call(r2)).done ? r2 = void 0 : r38.value;
|
|
if (r2 !== void 0) {
|
|
L10: {
|
|
try {
|
|
const r17 = r40[13];
|
|
const favoriteChannels = a0.favoriteChannels;
|
|
const r20 = r40[0];
|
|
const r43 = r40[2];
|
|
const r48 = r17(favoriteChannels, r20(r43[6]).FavoriteChannelType.REFERENCE_ORIGINAL);
|
|
if (r48 == null) {
|
|
const r50 = r40[4];
|
|
const channel = r50.getChannel(r41);
|
|
const favoriteChannels2 = a0.favoriteChannels;
|
|
const FavoriteChannel = r20(r43[6]).FavoriteChannel;
|
|
const r60 = {
|
|
nickname: "",
|
|
type: r20(r43[6]).FavoriteChannelType.REFERENCE_ORIGINAL,
|
|
channelType: channel != null ? r20(r43[7]).UInt32Value.create({
|
|
value: channel.type
|
|
}) : void 0,
|
|
position: (0, r40[10])(a0.favoriteChannels),
|
|
parentId: null
|
|
};
|
|
let parentId = r13[0];
|
|
if (parentId == null) {
|
|
parentId = r40[7];
|
|
}
|
|
r60.parentId = parentId;
|
|
favoriteChannels2[r41] = FavoriteChannel.create(r60);
|
|
(0, r40[11])(a0.favoriteChannels);
|
|
const r75 = r40[12];
|
|
const favoriteChannels3 = a0.favoriteChannels;
|
|
r75(favoriteChannels3, r41);
|
|
r3 = true;
|
|
r20(r43[13]).trackFavoritesGuildAddToFavorites(r13[1], (0, r40[17])(r41, r20(r43[6]).FavoriteChannelType.REFERENCE_ORIGINAL), (0, r40[16])(a0.favoriteChannels));
|
|
continue;
|
|
}
|
|
(0, r40[14])(r48);
|
|
if (r3) {
|
|
break L10;
|
|
}
|
|
} catch (r97) {
|
|
if (r2 !== void 0 && typeof r2.return === "function") {
|
|
try {
|
|
r2.return();
|
|
} catch {}
|
|
}
|
|
throw r97;
|
|
}
|
|
const r95 = r2;
|
|
if (r95 !== void 0 && typeof r95.return === "function") {
|
|
r95.return();
|
|
}
|
|
return false;
|
|
}
|
|
const r96 = r2;
|
|
if (r96 !== void 0 && typeof r96.return === "function") {
|
|
r96.return();
|
|
}
|
|
}
|
|
return void 0;
|
|
}
|
|
};
|
|
}
|
|
function $mk84187($env) {
|
|
return (a0) => {
|
|
if ((0, $env[0])(a0)) {
|
|
return void 0;
|
|
}
|
|
return false;
|
|
};
|
|
}
|
|
let cleanFavoriteChannels, cleanupChannelParentId, getReachedLimit, showLimitReachedAlert, onSaveFailed, getFavoritesCount, getAnalyticsChannelType, removeFavoriteChannel;
|
|
let $mk84182 = function() {
|
|
return (a0) => a0.type !== FavoriteChannelType.CATEGORY;
|
|
}, $mk84184 = function() {
|
|
return (a0) => !FavoriteStore.isFavorite(a0);
|
|
};
|
|
let env6810 = {};
|
|
const getNextPositionFromChannels = function getNextPositionFromChannels(a0) {
|
|
let r16;
|
|
let r7 = 0;
|
|
let r6 = 0;
|
|
for (const key in a0) {
|
|
r16 = r7;
|
|
r6 = r16;
|
|
const r17 = a0[key];
|
|
r7 = r17 != null && r17.position != null ? Math.max(r16, r17.position) : r16;
|
|
}
|
|
r16 = r7;
|
|
r6 = r16;
|
|
return r6 + 1;
|
|
};
|
|
cleanFavoriteChannels = function cleanFavoriteChannels(a0) {
|
|
for (const key in a0) {
|
|
const r12 = a0[key];
|
|
if (r12 != null) {
|
|
if (r12.type !== FavoriteChannelType.CATEGORY) {
|
|
const channel = ChannelStore.getChannel(key);
|
|
if (channel != null) {
|
|
if (r12.channelType == null) {
|
|
r12.channelType = UInt32Value.create({
|
|
value: channel.type
|
|
});
|
|
}
|
|
if (!(channel.isPrivate() || PermissionStore.can(Permissions.VIEW_CHANNEL, channel))) {
|
|
delete a0[key];
|
|
}
|
|
} else {
|
|
const value2 = r12.channelType?.value;
|
|
if (value2 != null && THREAD_CHANNEL_TYPES.has(value2)) {
|
|
continue;
|
|
}
|
|
delete a0[key];
|
|
}
|
|
}
|
|
} else {
|
|
delete a0[key];
|
|
}
|
|
}
|
|
};
|
|
cleanupChannelParentId = function cleanupChannelParentId(a0, a1) {
|
|
const r3 = a0[a1];
|
|
if (r3 != null) {
|
|
if (r3.parentId !== FAVORITES_UNCATEGORIZED_PARENT_ID) {
|
|
const r10 = r3.parentId != null ? a0[r3.parentId] : null;
|
|
if (!(r10 != null && r10.type === FavoriteChannelType.CATEGORY)) {
|
|
r3.parentId = FAVORITES_UNCATEGORIZED_PARENT_ID;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
getReachedLimit = function getReachedLimit(a0, a1) {
|
|
cleanFavoriteChannels(a0);
|
|
if (Module12.size(a0) >= MAX_FAVORITE_CHANNELS) {
|
|
return MAX_FAVORITE_CHANNELS;
|
|
}
|
|
const favoriteLimit = getFavoritesAccess().favoriteLimit;
|
|
return favoriteLimit <= 0 ? null : a1 !== FavoriteChannelType.CATEGORY ? Module12.filter(a0, $mk84182()).length >= favoriteLimit ? favoriteLimit : null : null;
|
|
};
|
|
showLimitReachedAlert = function showLimitReachedAlert(a0) {
|
|
AlertActionCreators.show({
|
|
title: intl.string(t["+XYXtZ"]),
|
|
body: intl.formatToPlainString(t.JaIyFi, {
|
|
count: a0
|
|
})
|
|
});
|
|
};
|
|
onSaveFailed = function onSaveFailed() {
|
|
AlertActionCreators.show({
|
|
title: intl.string(t.iufib1),
|
|
body: intl.string(t.eAn6z2),
|
|
onCloseCallback: function onCloseCallback() {
|
|
window.location.reload();
|
|
}
|
|
});
|
|
};
|
|
getFavoritesCount = function getFavoritesCount(a0) {
|
|
return Object.keys(a0).length;
|
|
};
|
|
getAnalyticsChannelType = function getAnalyticsChannelType(a0, a1) {
|
|
const CATEGORY = FavoriteChannelType.CATEGORY;
|
|
let r11 = null;
|
|
if (a1 !== CATEGORY) {
|
|
let r16 = ChannelStore.getChannel(a0)?.type;
|
|
if (r16 == null) {
|
|
r16 = null;
|
|
}
|
|
r11 = r16;
|
|
}
|
|
return r11;
|
|
};
|
|
removeFavoriteChannel = function removeFavoriteChannel(a0) {
|
|
let c17767_3;
|
|
let c17767_0 = a0;
|
|
let r4 = arguments[1];
|
|
if (r4 === void 0) {
|
|
r4 = {};
|
|
}
|
|
let trackAnalytics = r4.trackAnalytics;
|
|
if (trackAnalytics === void 0) {
|
|
trackAnalytics = true;
|
|
}
|
|
let c17767_1 = trackAnalytics;
|
|
c17767_3 = void 0;
|
|
const favorite = FavoriteStore.getFavorite(a0);
|
|
if (favorite != null) {
|
|
let r17 = null;
|
|
if (trackAnalytics) {
|
|
const type = favorite.type;
|
|
const CATEGORY = FavoriteChannelType.CATEGORY;
|
|
let r24 = null;
|
|
if (type !== CATEGORY) {
|
|
let r28 = ChannelStore.getChannel(a0)?.type;
|
|
if (r28 == null) {
|
|
r28 = null;
|
|
}
|
|
r24 = r28;
|
|
}
|
|
r17 = r24;
|
|
}
|
|
c17767_3 = r17;
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
delete a0.favoriteChannels[c17767_0];
|
|
if (favorite.type === FavoriteChannelType.CATEGORY) {
|
|
const favoriteChannels = a0.favoriteChannels;
|
|
for (const key in favoriteChannels) {
|
|
if (a0.favoriteChannels[key].parentId === c17767_0) {
|
|
a0.favoriteChannels[key].parentId = FAVORITES_UNCATEGORIZED_PARENT_ID;
|
|
}
|
|
}
|
|
}
|
|
cleanFavoriteChannels(a0.favoriteChannels);
|
|
if (c17767_1) {
|
|
trackFavoritesGuildRemoveFromFavorites(c17767_3, Object.keys(a0.favoriteChannels).length);
|
|
}
|
|
}, UserSettingsDelay.INFREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
};
|
|
export function addFavoriteChannel(a0, a1, r4 = "channel_context_menu") {
|
|
let env17768;
|
|
const r6 = [a0];
|
|
const r13 = env17768 = {
|
|
$parent: env6810
|
|
};
|
|
env17768[0] = a1;
|
|
if (r4 === void 0) {
|
|
r4 = "channel_context_menu";
|
|
}
|
|
env17768[1] = r4;
|
|
env17768[2] = void 0;
|
|
const r16 = r6.filter($mk84184());
|
|
env17768[2] = r16;
|
|
if (r16.length !== 0) {
|
|
const FREQUENT_USER_ACTION = UserSettingsDelay.FREQUENT_USER_ACTION;
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", $mk84185(r13), FREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
}
|
|
export function addFavoriteChannels(a0, a1) {
|
|
let env17766;
|
|
const r2 = env17766 = {
|
|
$parent: env6810
|
|
};
|
|
env17766[0] = a1;
|
|
let r4 = arguments[2];
|
|
if (r4 === void 0) {
|
|
r4 = "channel_context_menu";
|
|
}
|
|
env17766[1] = r4;
|
|
env17766[2] = void 0;
|
|
const r15 = a0.filter($mk84184());
|
|
env17766[2] = r15;
|
|
if (r15.length !== 0) {
|
|
const FREQUENT_USER_ACTION = UserSettingsDelay.FREQUENT_USER_ACTION;
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", $mk84185(r2), FREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
}
|
|
export { removeFavoriteChannel };
|
|
export function setFavoriteChannelNickname(a0, c17769_1) {
|
|
let c17769_0 = a0;
|
|
if (FavoriteStore.isFavorite(a0)) {
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
const r5 = a0.favoriteChannels[c17769_0];
|
|
let nickname2 = c17769_1;
|
|
if (nickname2 == null) {
|
|
nickname2 = "";
|
|
}
|
|
r5.nickname = nickname2;
|
|
}, UserSettingsDelay.INFREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
}
|
|
export function addFavoriteCategory(a0, r3 = "modal") {
|
|
let nickname, c17770_2;
|
|
let c17770_0 = r3;
|
|
nickname = void 0;
|
|
c17770_2 = void 0;
|
|
if (isFavoritesGuildCategoryNameValid(a0)) {
|
|
nickname = a0.trim();
|
|
c17770_2 = SnowflakeUtils.fromTimestamp(Date.now());
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
let r29;
|
|
const favoriteChannels = a0.favoriteChannels;
|
|
const CATEGORY = FavoriteChannelType.CATEGORY;
|
|
cleanFavoriteChannels(favoriteChannels);
|
|
const r35 = Module12.size(favoriteChannels);
|
|
let MAX_FAVORITE_CHANNELS2 = MAX_FAVORITE_CHANNELS;
|
|
if (!(r35 >= MAX_FAVORITE_CHANNELS2)) {
|
|
const favoriteLimit = getFavoritesAccess().favoriteLimit;
|
|
MAX_FAVORITE_CHANNELS2 = favoriteLimit <= 0 ? null : CATEGORY !== FavoriteChannelType.CATEGORY ? Module12.filter(favoriteChannels, $mk84182()).length >= favoriteLimit ? favoriteLimit : null : null;
|
|
}
|
|
if (MAX_FAVORITE_CHANNELS2 != null) {
|
|
AlertActionCreators.show({
|
|
title: intl.string(t["+XYXtZ"]),
|
|
body: intl.formatToPlainString(t.JaIyFi, {
|
|
count: MAX_FAVORITE_CHANNELS2
|
|
})
|
|
});
|
|
return false;
|
|
}
|
|
const { favoriteChannels: favoriteChannels3, favoriteChannels: favoriteChannels2 } = a0;
|
|
let r21 = 0;
|
|
let r20 = 0;
|
|
for (const key in favoriteChannels2) {
|
|
r29 = r21;
|
|
r20 = r29;
|
|
const r67 = favoriteChannels2[key];
|
|
r21 = r67 != null && r67.position != null ? Math.max(r29, r67.position) : r29;
|
|
}
|
|
r29 = r21;
|
|
r20 = r29;
|
|
favoriteChannels3[c17770_2] = _Module1306.FavoriteChannel.create({
|
|
nickname,
|
|
type: FavoriteChannelType.CATEGORY,
|
|
position: r20 + 1,
|
|
parentId: FAVORITES_UNCATEGORIZED_PARENT_ID
|
|
});
|
|
const CATEGORY2 = FavoriteChannelType.CATEGORY;
|
|
const CATEGORY3 = FavoriteChannelType.CATEGORY;
|
|
let r88 = null;
|
|
if (CATEGORY2 !== CATEGORY3) {
|
|
let r93 = ChannelStore.getChannel(c17770_2)?.type;
|
|
if (r93 == null) {
|
|
r93 = null;
|
|
}
|
|
r88 = r93;
|
|
}
|
|
trackFavoritesGuildAddToFavorites(c17770_0, r88, Object.keys(a0.favoriteChannels).length);
|
|
}, UserSettingsDelay.FREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
}
|
|
export function removeFavoriteCategory(a0) {
|
|
removeFavoriteChannel(a0);
|
|
}
|
|
export function setFavoriteCategoryCollapsed(a0, collapsed) {
|
|
let c17771_0 = a0;
|
|
const favorite2 = FavoriteStore.getFavorite(a0);
|
|
if (favorite2 != null && favorite2.type === FavoriteChannelType.CATEGORY) {
|
|
let env17772;
|
|
const r23 = env17772 = {};
|
|
env17772[0] = (a0) => {
|
|
const r8 = a0.favoriteChannels[c17771_0];
|
|
let r10 = r8 != null && r8.type === FavoriteChannelType.CATEGORY && r8.collapsed !== collapsed;
|
|
if (r10) {
|
|
r8.collapsed = collapsed;
|
|
r10 = true;
|
|
}
|
|
return r10;
|
|
};
|
|
const FREQUENT_USER_ACTION = UserSettingsDelay.FREQUENT_USER_ACTION;
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", $mk84187(r23), FREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
}
|
|
export function setAllFavoriteCategoriesCollapsed(collapsed2) {
|
|
let env17774;
|
|
const r12 = env17774 = {};
|
|
env17774[0] = (a0) => {
|
|
let r4;
|
|
const favoriteChannels = a0.favoriteChannels;
|
|
let r3 = false;
|
|
let r6 = false;
|
|
for (const key in favoriteChannels) {
|
|
r4 = r3;
|
|
r6 = r4;
|
|
const r21 = a0.favoriteChannels[key];
|
|
let r2 = r21 != null && r21.type === FavoriteChannelType.CATEGORY && r21.collapsed !== collapsed2;
|
|
if (r2) {
|
|
r21.collapsed = collapsed2;
|
|
r2 = true;
|
|
}
|
|
r3 = r2 ? true : r4;
|
|
}
|
|
r4 = r3;
|
|
r6 = r4;
|
|
return r6;
|
|
};
|
|
const FREQUENT_USER_ACTION = UserSettingsDelay.FREQUENT_USER_ACTION;
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", $mk84187(r12), FREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
export function updateFavoriteChannels(a0) {
|
|
let c17775_0 = a0;
|
|
if (a0.length !== 0) {
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
for (const item of c17775_0) {
|
|
const id = item.id;
|
|
if (item.position != null) {
|
|
a0.favoriteChannels[id].position = item.position;
|
|
}
|
|
if (item.parent_id !== void 0) {
|
|
const r40 = a0.favoriteChannels[id];
|
|
let parent_id = item.parent_id;
|
|
if (parent_id == null) {
|
|
parent_id = FAVORITES_UNCATEGORIZED_PARENT_ID;
|
|
}
|
|
r40.parentId = parent_id;
|
|
cleanupChannelParentId(a0.favoriteChannels, id);
|
|
}
|
|
}
|
|
trackFavoritesGuildOrderUpdated();
|
|
}, UserSettingsDelay.FREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
}
|
|
export function updateFavoriteChannelParent(c17776_0, c17776_1) {
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
const favoriteChannels = a0.favoriteChannels;
|
|
const r8 = favoriteChannels[c17776_0];
|
|
let parentId = c17776_1;
|
|
if (parentId == null) {
|
|
parentId = FAVORITES_UNCATEGORIZED_PARENT_ID;
|
|
}
|
|
r8.parentId = parentId;
|
|
const favoriteChannels2 = a0.favoriteChannels;
|
|
const r10 = favoriteChannels2[c17776_0];
|
|
if (r10 != null) {
|
|
if (r10.parentId !== FAVORITES_UNCATEGORIZED_PARENT_ID) {
|
|
const r15 = r10.parentId != null ? favoriteChannels2[r10.parentId] : null;
|
|
if (!(r15 != null && r15.type === FavoriteChannelType.CATEGORY)) {
|
|
r10.parentId = FAVORITES_UNCATEGORIZED_PARENT_ID;
|
|
}
|
|
}
|
|
}
|
|
}, UserSettingsDelay.FREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
export function toggleFavoriteGuildMuted() {
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
a0.muted = !a0.muted;
|
|
}, UserSettingsDelay.INFREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|
|
export function resetFavoritesGuild() {
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
a0.favoriteChannels = {};
|
|
a0.guildVisible = void 0;
|
|
a0.muted = false;
|
|
}, UserSettingsDelay.INFREQUENT_USER_ACTION, onSaveFailed);
|
|
for (const item of FAVORITES_GUILD_DISMISSIBLE_CONTENT) {
|
|
removeDismissedContent(item);
|
|
}
|
|
}
|
|
export function setFavoritesGuildVisibility(value, r3 = "settings_page") {
|
|
let c17777_1 = r3;
|
|
PreloadedUserSettingsActionCreators.updateAsync("favorites", (a0) => {
|
|
a0.guildVisible = BoolValue.create({
|
|
value
|
|
});
|
|
trackFavoritesGuildVisibilitySettingToggled(c17777_1, value);
|
|
}, UserSettingsDelay.INFREQUENT_USER_ACTION, onSaveFailed);
|
|
}
|