Files
discord-decomp/_bundle/getFormattedString.js
T
2026-11-01 12:12:55 +02:00

234 lines
8.2 KiB
JavaScript

// Metro module 5476 (f5477).
import _slicedToArray from "./_slicedToArray_5416";
import { useState, useRef, useCallback, useEffect } from "react";
import { autoScroll, Cancellable } from "./Cancellable";
import { ErrorMessages } from "./Module5413";
import { JSFPSMonitor } from "./JSFPSMonitor";
let runScrollBenchmark;
let env3362 = {};
export function getFormattedString(a0) {
return `Results:
JS FPS: Avg: ${a0.js?.averageFPS} | Min: ${a0.js?.minFPS} | Max: ${a0.js?.maxFPS}
` + (a0.suggestions.length > 0 ? `Suggestions:
${a0.suggestions.map((suggestion, index) => `${index + 1}. ${suggestion}`).join("\n")}` : "");
}
runScrollBenchmark = async function runScrollBenchmark(c25473_0, c25473_1, c25473_2) {
let c25473_3, c25473_4;
L14: {
L13: {
let env29511;
c25473_4 = env3362;
const r10 = env29511 = {};
c25473_3 = r10;
env29511[0] = c25473_0;
env29511[1] = c25473_1;
env29511[2] = c25473_2;
env29511[3] = void 0;
env29511[4] = void 0;
env29511[5] = void 0;
env29511[6] = void 0;
if (!c25473_0.current) {
break L14;
}
env29511[3] = c25473_0.current.props.horizontal;
const current = c25473_0.current;
if (current) {
const windowSize = current.getWindowSize();
const childContainerDimensions = current.getChildContainerDimensions();
const r46 = childContainerDimensions.width - windowSize.width;
env29511[4] = r46;
const r49 = childContainerDimensions.height - windowSize.height;
env29511[5] = r49;
const scrollNow = (a0, a1) => {
const current = env29511[0].current;
if (current != null) {
current.scrollToOffset({
offset: env29511[3] ? a0 : a1,
animated: false
});
}
};
env29511[6] = scrollNow;
await autoScroll(scrollNow, 0, 0, r46, r49, c25473_2, c25473_1);
await autoScroll(env29511[6], env29511[4], env29511[5], 0, 0, env29511[2], env29511[1]);
break L13;
}
break L14;
}
return void 0;
}
};
export function useBenchmark(a0, a1) {
let env14872 = {
$parent: env3362
};
env14872[0] = a0;
env14872[1] = a1;
let r5 = arguments[2];
if (r5 === void 0) {
r5 = {};
}
env14872[2] = r5;
env14872[3] = void 0;
env14872[4] = void 0;
env14872[5] = void 0;
env14872[6] = void 0;
const r12 = _slicedToArray((0, useState)(false), 2);
const isBenchmarkRunning = r12[0];
env14872[3] = isBenchmarkRunning;
env14872[4] = r12[1];
env14872[5] = (0, useRef)(null);
const startBenchmark = (0, useCallback)(() => {
if (!env14872[3]) {
let env25474 = {
$parent: env14872
};
const cancellable = new Cancellable();
env25474[0] = cancellable;
env14872[5].current = cancellable;
env25474[1] = [];
const r21 = env14872[0];
if (r21.current) {
if (!(Number(r21.current.props.data?.length) > 0)) {
throw new Error(ErrorMessages.dataEmptyCannotRunBenchmark);
}
}
(0, env14872[4])(true);
let c25475_0 = async () => {
let c31369_0, c31369_1;
L32: {
L16: {
let env31937;
L10: {
c31369_1 = void 0;
const r8 = env31937 = {};
c31369_0 = r8;
env31937[0] = void 0;
env31937[1] = void 0;
env31937[2] = void 0;
env31937[3] = void 0;
const jSFPSMonitor = new JSFPSMonitor();
env31937[0] = jSFPSMonitor;
jSFPSMonitor.startTracking();
env31937[1] = 0;
const r38 = env31937[1];
const repeatCount = env14872[2].repeatCount;
if (repeatCount) {
if (r38 < repeatCount) {
break L10;
}
} else if (r38 < 1) {
break L10;
}
env31937[2] = env31937[0].stopAndGetData();
if (env31937[2].averageFPS < 35) {
c31369_1.$parent[1].push("Your average JS FPS is low. This can indicate that your components are doing too much work. Try to optimize your components and reduce re-renders if any");
}
const r60 = c31369_1;
const r62 = env14872[0];
const r63 = r60.$parent;
(function computeSuggestions(a0, a1) {
if (a0.current && a0.current.props.data.length < 200) {
a1.push("Data count is low. Try to increase it to a large number (e.g 200) using the 'useDataMultiplier' hook.");
}
})(r62, r63[1]);
env31937[3] = (function generateResult(a0, a1, a2) {
return {
js: a0,
suggestions: a1,
interrupted: a2.isCancelled()
};
})(env31937[2], r63[1], r63[0]);
if (!r63[0].isCancelled()) {
env31937[3].formattedString = (0, getFormattedString)(env31937[3]);
}
(0, env14872[1])(env31937[3]);
(0, env14872[4])(false);
break L16;
}
const r43 = c31369_1;
const r47 = env14872[0];
const r49 = r43.$parent[0];
const speedMultiplier = env14872[2].speedMultiplier;
await (speedMultiplier ? runScrollBenchmark(r47, r49, speedMultiplier) : runScrollBenchmark(r47, r49, 1));
while (true) {
L25: {
env31937[1] = env31937[1] + 1;
const r122 = env31937[1];
const repeatCount2 = env14872[2].repeatCount;
if (repeatCount2) {
if (r122 < repeatCount2) {
break L25;
}
} else if (r122 < 1) {
break L25;
}
env31937[2] = env31937[0].stopAndGetData();
if (env31937[2].averageFPS < 35) {
c31369_1.$parent[1].push("Your average JS FPS is low. This can indicate that your components are doing too much work. Try to optimize your components and reduce re-renders if any");
}
const r144 = c31369_1;
const r146 = env14872[0];
const r147 = r144.$parent;
(function computeSuggestions(a0, a1) {
if (a0.current && a0.current.props.data.length < 200) {
a1.push("Data count is low. Try to increase it to a large number (e.g 200) using the 'useDataMultiplier' hook.");
}
})(r146, r147[1]);
env31937[3] = (function generateResult(a0, a1, a2) {
return {
js: a0,
suggestions: a1,
interrupted: a2.isCancelled()
};
})(env31937[2], r147[1], r147[0]);
if (!r147[0].isCancelled()) {
env31937[3].formattedString = (0, getFormattedString)(env31937[3]);
}
(0, env14872[1])(env31937[3]);
(0, env14872[4])(false);
break L32;
}
const r127 = c31369_1;
const r131 = env14872[0];
const r133 = r127.$parent[0];
const speedMultiplier2 = env14872[2].speedMultiplier;
await (speedMultiplier2 ? runScrollBenchmark(r131, r133, speedMultiplier2) : runScrollBenchmark(r131, r133, 1));
}
}
return void 0;
}
};
(function runBenchmark() {
return c25475_0.apply(this, arguments);
})();
}
}, [a1, a0, isBenchmarkRunning, r5.repeatCount, r5.speedMultiplier]);
env14872[6] = startBenchmark;
(0, useEffect)(() => {
const r2 = env14872[2];
if (r2.startManually) {
return void 0;
}
const r5 = setTimeout;
const r7 = r2.startDelayInMs || 3000;
let c25476_0 = r5(() => {
(0, env14872[6])();
}, r7);
return () => {
clearTimeout(c25476_0);
const r7 = env14872[5];
if (r7.current) {
r7.current.cancel();
}
};
}, []);
return {
startBenchmark,
isBenchmarkRunning
};
}