61 lines
1.6 KiB
TypeScript
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
|
|
};
|
|
};
|