Files
discord-decomp/modules/messages/native/burst_reactions/BurstReactionEffectUtils.tsx
T
2026-11-01 12:12:55 +02:00

227 lines
7.1 KiB
TypeScript

// Metro module 6095 (f6096).
import _slicedToArray from "../../../../_bundle/_slicedToArray";
import { useState, useEffect } from "react";
import { NativeModules, Image } from "react-native";
import { getEmojiUrl } from "../../../../utils/EmojiUtils";
import { getBurstAnimation } from "../../getBurstAnimation.native";
import { makeSource } from "../../../../utils/AvatarUtils";
import { isAndroid } from "../../../../utils/PlatformUtils";
import { replaceAnimationColors } from "../../BurstReactionEffectUtils";
let env3874 = {};
env3874[7] = function _generateAnimationSource() {
const r8 = async (c25711_0, c25711_1, c25711_2, c25711_3) => {
let r165, r234;
let emojiUrl;
let c25711_8 = 0;
let c29668_0, c29668_1, c29668_2, c29668_3, c29668_4, c29668_5, c29668_6, c29668_7, c29668_8, c29668_9, c29668_10, c29668_11;
try {
c29668_0 = c25711_2;
c29668_1 = void 0;
c29668_2 = void 0;
c29668_3 = void 0;
c29668_4 = void 0;
c29668_5 = void 0;
c29668_6 = void 0;
c29668_7 = void 0;
c29668_8 = void 0;
c29668_9 = void 0;
c29668_10 = void 0;
c29668_11 = void 0;
c25711_8 = 1;
const emojiUrl2 = getEmojiUrl({
...c25711_2,
animated: false
}, 128);
emojiUrl = emojiUrl2;
if (emojiUrl2 == null) {
emojiUrl = "";
}
c29668_2 = emojiUrl;
c29668_3 = await getBurstAnimation(c25711_0, c25711_1, c25711_2.name, c25711_3);
if (c29668_2 !== "") {
c29668_1 = makeSource(c29668_2);
c29668_4 = await NativeModules.ImageManager.getAvatarBase64(c29668_1);
c29668_3.assets[0].p = `data:image/png;base64,${c29668_4}`;
c29668_6 = JSON.stringify(c29668_3);
if (c29668_0.id == null) {
c29668_6 = c29668_6.replace(/"a":{"a":0,"k":\[64,64/, "\"a\":{\"a\":0,\"k\":[36,36");
if (isAndroid()) {
c29668_6 = c29668_6.replace(/"w":128,"h":128/, "\"w\":72,\"h\":72");
}
}
r165 = NativeModules.ImageManager.getDominantColors(c29668_1);
} else {
c29668_5 = `data:image/png;base64,${await NativeModules.ImageManager.getEmojiBase64(c29668_0.name, 128)}`;
c29668_3.assets[0].p = c29668_5;
c29668_1 = makeSource(c29668_5);
c29668_6 = JSON.stringify(c29668_3);
if (c29668_0.id == null) {
c29668_6 = c29668_6.replace(/"a":{"a":0,"k":\[64,64/, "\"a\":{\"a\":0,\"k\":[36,36");
if (isAndroid()) {
c29668_6 = c29668_6.replace(/"w":128,"h":128/, "\"w\":72,\"h\":72");
}
}
r165 = NativeModules.ImageManager.getDominantColors(c29668_1);
}
c29668_7 = await r165;
c29668_8 = (0, _slicedToArray)(c29668_7[0], 3);
c29668_9 = c29668_8[0];
c29668_10 = c29668_8[1];
c29668_11 = c29668_8[2];
c29668_6 = replaceAnimationColors(c29668_6, {
r: c29668_9,
g: c29668_10,
b: c29668_11
});
r234 = JSON.parse(c29668_6);
c25711_8 = 0;
} catch ($e) {
let r7 = $e;
if (c25711_8 !== 0) {
while (true) {
try {
c25711_8 = 0;
} catch ($e) {
r7 = $e;
if (c25711_8 === 0) {
break;
}
continue;
}
return null;
}
}
throw r7;
}
return r234;
};
env3874[7] = r8;
return r8.apply(this, arguments);
};
env3874[8] = function _generateAnimationSourceFromLocalImage() {
const r8 = async (c25712_0) => {
let r150;
let c25712_4 = 0;
let c29669_0, c29669_1, c29669_2, c29669_3, c29669_4, c29669_5, c29669_6, c29669_7, c29669_8, c29669_9, c29669_10;
try {
c29669_0 = void 0;
c29669_1 = void 0;
c29669_0 = c25712_0.animationSource;
c29669_1 = c25712_0.localImageSource;
c29669_2 = void 0;
c29669_3 = void 0;
c29669_4 = void 0;
c29669_5 = void 0;
c29669_6 = void 0;
c29669_7 = void 0;
c29669_8 = void 0;
c29669_9 = void 0;
c29669_10 = void 0;
await void 0;
c25712_4 = 1;
c29669_2 = Image.resolveAssetSource(c29669_1).uri;
c29669_3 = makeSource(c29669_2);
c29669_4 = await NativeModules.ImageManager.getAvatarBase64(c29669_3);
c29669_0.assets[0].p = `data:image/png;base64,${c29669_4}`;
c29669_5 = JSON.stringify(c29669_0);
c29669_6 = await NativeModules.ImageManager.getDominantColors(c29669_3);
c29669_7 = (0, _slicedToArray)(c29669_6[0], 3);
c29669_8 = c29669_7[0];
c29669_9 = c29669_7[1];
c29669_10 = c29669_7[2];
c29669_5 = replaceAnimationColors(c29669_5, {
r: c29669_8,
g: c29669_9,
b: c29669_10
});
r150 = JSON.parse(c29669_5);
c25712_4 = 0;
} catch ($e) {
let r7 = $e;
if (c25712_4 !== 0) {
while (true) {
try {
c25712_4 = 0;
} catch ($e) {
r7 = $e;
if (c25712_4 === 0) {
break;
}
continue;
}
return null;
}
}
throw r7;
}
return r150;
};
env3874[8] = r8;
return r8.apply(this, arguments);
};
export function useBurstReactionAnimationSource({ channelId, messageId, emoji, isFullscreen }) {
const [state, setState] = useState(null);
useEffect(() => {
let _getSource3 = function _getSource() {
const r9 = async () => {
let c31390_0, c31390_1;
L13: {
let env31948;
c31390_1 = void 0;
const r10 = env31948 = {
$parent: env3874
};
c31390_0 = r10;
env31948[0] = void 0;
if (emoji != null) {
env31948[0] = await (function generateAnimationSource(a0, a1, a2, a3) {
return env3874[7].apply(this, arguments);
})(channelId, messageId, emoji, isFullscreen);
(0, setState)(env31948[0]);
break L13;
}
return void 0;
}
};
_getSource3 = r9;
return r9.apply(this, arguments);
};
(function getSource() {
return _getSource3.apply(this, arguments);
})();
}, [channelId, messageId, emoji, isFullscreen]);
return state;
}
export function useSuperReactionAnimationSourceFromLocalImage({ animationSource, localImageSource }) {
const [state, setState2] = useState(null);
useEffect(() => {
let _getSource22 = function _getSource2() {
const r9 = async () => {
let c31391_1;
let env31949;
c31391_1 = void 0;
const r9 = env31949 = {
$parent: env3874
};
let c31391_0 = r9;
env31949[0] = void 0;
env31949[0] = await (function generateAnimationSourceFromLocalImage(a0) {
return env3874[8].apply(this, arguments);
})({
animationSource,
localImageSource
});
(0, setState2)(env31949[0]);
};
_getSource22 = r9;
return r9.apply(this, arguments);
};
(function getSource() {
return _getSource22.apply(this, arguments);
})();
}, [animationSource, localImageSource]);
return state;
}
export const EMOJI_IN_ANIMATION_SIZE = 128;
export const BACKDROP_OPACITY = 0.8;