52 lines
1.7 KiB
TypeScript
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
|
|
};
|
|
}
|