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

52 lines
1.7 KiB
TypeScript

// Metro module 14620 (f14621).
import { COLLECTIBLES_SHOP_CARD_WIDTH, COLLECTIBLES_SHOP_CARD_GAP, COLLECTIBLES_SHOP_CARD_MAX_WIDTH } from "../CollectiblesShopCardV2";
import useWindowDimensions_native from "../../../screen/useWindowDimensions.native";
export function useCardLayout() {
const width = useWindowDimensions_native().width;
const columns = width >= 320 ? 2 : 1;
if (columns < 2) {
return {
columns,
cardWidth: void 0,
rowWidth: void 0
};
}
const r7 = width >= 768 ? 4 : 2;
const r2 = COLLECTIBLES_SHOP_CARD_WIDTH * columns;
const r31 = columns - 1;
const r33 = width - (r2 + COLLECTIBLES_SHOP_CARD_GAP * r31);
const r41 = r33 < 2 * COLLECTIBLES_SHOP_CARD_GAP ? Math.max(4, r33) : 2 * COLLECTIBLES_SHOP_CARD_GAP;
const r51 = (width - (r41 + COLLECTIBLES_SHOP_CARD_GAP * r31)) / columns;
let r55 = r51;
let columns2 = columns;
if (r51 > COLLECTIBLES_SHOP_CARD_MAX_WIDTH) {
let r58 = columns;
r55 = r51;
columns2 = r58;
while (columns2 < r7) {
const r63 = r58 + 1;
const r72 = (width - (r41 + COLLECTIBLES_SHOP_CARD_GAP * (r63 - 1))) / r63;
r55 = r72;
columns2 = r63;
if (!(r72 > COLLECTIBLES_SHOP_CARD_MAX_WIDTH)) {
break;
}
r58 = r63;
r55 = r72;
columns2 = r58;
}
}
const cardWidth = Math.min(Math.max(r55, COLLECTIBLES_SHOP_CARD_WIDTH), COLLECTIBLES_SHOP_CARD_MAX_WIDTH);
const r96 = cardWidth * columns2;
const r100 = columns2 - 1;
return r96 + (r41 + COLLECTIBLES_SHOP_CARD_GAP * r100) > width && 1 < columns2 ? {
columns: 1,
cardWidth: void 0,
rowWidth: void 0
} : {
columns: columns2,
cardWidth,
rowWidth: cardWidth * columns2 + COLLECTIBLES_SHOP_CARD_GAP * r100 + r41
};
}