Files
discord-decomp/modules/user_profile/hooks/native/useCardGridLayout.tsx
T
2026-11-01 12:12:55 +02:00

61 lines
1.6 KiB
TypeScript

// Metro module 12194 (f12195).
import { PROFILE_SIDE_PADDING } from "../../native/Constants";
import useWindowDimensions_native from "../../../screen/useWindowDimensions.native";
export default function useCardGridLayout(r9 = {}) {
const { minCardSize = 150, maxCardSize = 180, gap = 16 } = r9;
let containerWidth = r9.containerWidth;
let maxWidth = r9.maxWidth;
let sidePadding = r9.sidePadding;
if (sidePadding === void 0) {
sidePadding = PROFILE_SIDE_PADDING;
}
const width = useWindowDimensions_native().width;
const r13 = Math;
if (containerWidth == null) {
containerWidth = width;
}
if (maxWidth == null) {
maxWidth = Infinity;
}
const r6 = r13.min(containerWidth, maxWidth) - 2 * sidePadding;
const r37 = Math.max(1, Math.floor((r6 + gap) / (minCardSize + gap)));
const r2 = (r6 - gap * 0) / 1;
const r40 = r2 > maxCardSize;
let r5 = r2;
let columns = 1;
if (r40) {
const r42 = 1 < r37;
let r1 = 1;
r5 = r2;
columns = 1;
if (r42) {
do {
const r43 = r1 + 1;
const r46 = (r6 - gap * (r43 - 1)) / r43;
r5 = r46;
columns = r43;
if (!(r46 > maxCardSize)) {
break;
}
r1 = r43;
r5 = r46;
columns = r1;
} while (columns < r37);
}
}
const cardWidth = Math.min(Math.max(r5, minCardSize), maxCardSize);
const r53 = cardWidth * columns;
const r54 = columns - 1;
return r6 < r53 + gap * r54 ? {
columns: 1,
cardWidth: void 0,
rowWidth: void 0,
gap
} : {
columns,
cardWidth,
rowWidth: cardWidth * columns + gap * r54,
gap
};
};