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

218 lines
6.3 KiB
TypeScript

// Metro module 9415 (f9416).
import EmojiStore from "../modules/emojis/EmojiStore";
import GatewayConnectionStore from "../modules/gateway/GatewayConnectionStore";
import GuildAvailabilityStore from "../stores/GuildAvailabilityStore";
import { Endpoints } from "../Constants";
import { MAX_FAVORITES, UserSettingsDelay } from "../modules/user_settings/UserSettingsConstants";
import { PreloadedUserSettingsActionCreators, FrecencyUserSettingsActionCreators } from "../modules/user_settings/UserSettingsProtoActionCreators";
import { StringValue } from "../_bundle/Module1337";
import Dispatcher from "../Dispatcher";
import { HTTP, rejectWithMigratedError } from "../_bundle/sendRequest";
import InlineUploader from "../lib/uploader_inline/InlineUploader";
import { AccessibilityAnnouncer } from "../design/shared";
import { intl, t } from "../intl/index.native";
import APIError from "../errors/APIError";
import UnicodeEmojis from "../modules/emojis/UnicodeEmojis";
import { isNotNullish } from "../utils/GlobalUtils";
import dedupeEmojisByNameOrId from "../modules/emojis/utils/dedupeEmojisByNameOrId";
import Module12 from "../_bundle/Module12";
import AlertActionCreators from "./AlertActionCreators";
let $mk82452 = function() {
return (a0) => {
let r5 = EmojiStore.getCustomEmojiById(a0);
if (r5 == null) {
r5 = UnicodeEmojis.getByName(a0);
}
return r5;
};
};
export function setDiversityColor(value) {
PreloadedUserSettingsActionCreators.updateAsync("textAndImages", (a0) => {
a0.diversitySurrogate = StringValue.create();
a0.diversitySurrogate.value = value;
}, UserSettingsDelay.FREQUENT_USER_ACTION);
}
export function fetchEmoji(a0) {
const guildId = a0;
Dispatcher.dispatch({
type: "EMOJI_FETCH",
guildId: a0
});
HTTP.get({
url: Endpoints.GUILD_EMOJIS(a0),
oldFormErrors: true,
rejectWithError: true
}).then((result) => Dispatcher.dispatch({
type: "EMOJI_FETCH_SUCCESS",
guildId,
emojis: result.body
}), () => Dispatcher.dispatch({
type: "EMOJI_FETCH_FAILURE",
guildId
}));
}
export function uploadEmoji({ guildId: guildId2, image, name: name3, roles, analyticsLocation, originalMd5 }) {
Dispatcher.dispatch({
type: "EMOJI_UPLOAD_START",
guildId: guildId2
});
return HTTP.post({
url: Endpoints.GUILD_EMOJIS(guildId2),
body: {
image,
name: name3,
roles
},
headers: InlineUploader.buildHeadersForMd5(originalMd5),
context: {
client_event_source: analyticsLocation?.page
},
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
}).then((result) => {
Dispatcher.dispatch({
type: "EMOJI_UPLOAD_STOP",
guildId: guildId2
});
return result.body;
}, (a0) => {
Dispatcher.dispatch({
type: "EMOJI_UPLOAD_STOP",
guildId: guildId2
});
return Promise.reject(a0);
});
}
export function deleteEmoji(a0, a1, a2) {
Dispatcher.dispatch({
type: "EMOJI_DELETE",
guildId: a0,
emojiId: a1
});
return HTTP.del({
url: Endpoints.GUILD_EMOJI(a0, a1),
body: a2 != null ? {
replaced_by: a2
} : void 0,
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
}).then(() => {
AccessibilityAnnouncer.announce(intl.string(t.L3UUha));
});
}
export async function updateEmoji(c26435_0) {
let r70;
let c26435_3;
let c26435_4 = 0;
let c30087_0, c30087_1, c30087_2, c30087_3, c30087_4;
try {
c30087_0 = void 0;
c30087_1 = void 0;
c30087_2 = void 0;
c30087_3 = void 0;
c30087_0 = c26435_0.guildId;
c30087_1 = c26435_0.emojiId;
c30087_2 = c26435_0.name;
c30087_3 = c26435_0.roles;
await void 0;
c26435_4 = 1;
r70 = await HTTP.patch({
url: Endpoints.GUILD_EMOJI(c30087_0, c30087_1),
body: {
name: c30087_2,
roles: c30087_3
},
oldFormErrors: true,
rejectWithError: true
});
c26435_4 = 0;
} catch ($e) {
const r31 = $e;
let r8 = r31;
c26435_3 = r31;
if (c26435_4 !== 0) {
while (true) {
try {
const r88 = c26435_3;
c26435_4 = 0;
c30087_4 = r88;
throw new APIError(c30087_4);
} catch (r84) {
r8 = r84;
c26435_3 = r84;
if (c26435_4 === 0) {
break;
}
}
}
}
throw r8;
}
return r70;
}
export function favoriteEmoji(a0) {
const r2 = a0 == null;
let r5 = null;
if (!r2) {
let id = a0.id;
if (id == null) {
id = UnicodeEmojis.convertSurrogateToBase(a0.surrogates)?.name;
}
if (id == null) {
id = a0.name;
}
r5 = id;
}
const name = r5;
if (name != null) {
FrecencyUserSettingsActionCreators.updateAsync("favoriteEmojis", (a0) => {
let r47;
const emojis = a0.emojis;
a0.emojis = GuildAvailabilityStore.totalUnavailableGuilds > 0 ? emojis : GatewayConnectionStore.isConnected() ? [...dedupeEmojisByNameOrId(emojis.map($mk82452()).filter(isNotNullish)).keys()] : emojis;
if (Module12.size(a0.emojis) >= MAX_FAVORITES) {
AlertActionCreators.show({
title: intl.string(t["+XYXtZ"]),
body: intl.formatToPlainString(t.JaIyFi, {
count: MAX_FAVORITES
})
});
r47 = false;
} else {
const r46 = a0.emojis.includes(name);
r47 = !r46;
if (!r46) {
a0.emojis.push(name);
r47 = void 0;
}
}
return r47;
}, UserSettingsDelay.INFREQUENT_USER_ACTION);
}
}
export function unfavoriteEmoji(a0) {
const r2 = a0 == null;
let r5 = null;
if (!r2) {
let id = a0.id;
if (id == null) {
id = UnicodeEmojis.convertSurrogateToBase(a0.surrogates)?.name;
}
if (id == null) {
id = a0.name;
}
r5 = id;
}
const name2 = r5;
if (name2 != null) {
FrecencyUserSettingsActionCreators.updateAsync("favoriteEmojis", (a0) => {
const emojis = a0.emojis;
a0.emojis = GuildAvailabilityStore.totalUnavailableGuilds > 0 ? emojis : GatewayConnectionStore.isConnected() ? [...dedupeEmojisByNameOrId(emojis.map($mk82452()).filter(isNotNullish)).keys()] : emojis;
if (a0.emojis.includes(name2)) {
a0.emojis = a0.emojis.filter((emoji) => name2 !== emoji);
return void 0;
}
return false;
}, UserSettingsDelay.INFREQUENT_USER_ACTION);
}
}