MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / computeSmartColumns

Function computeSmartColumns

cli/src/utils/layout-helpers.ts:14–33  ·  view source on GitHub ↗
(itemCount: number, maxColumns: number)

Source from the content-addressed store, hash-verified

12 * Tries to create a balanced grid (e.g. 2x2 instead of 3x1 + 1) while respecting max columns.
13 */
14export function computeSmartColumns(itemCount: number, maxColumns: number): number {
15 if (itemCount === 0) return 1
16 if (itemCount <= maxColumns) return itemCount
17
18 // If we can make a perfect grid with maxColumns, do it
19 if (itemCount % maxColumns === 0) return maxColumns
20
21 // Special case for 4 items on a 3-column screen: prefer 2x2 over 3+1
22 if (itemCount === 4 && maxColumns === 3) return 2
23
24 // Iterate down from maxColumns to find a divisor or better balance
25 // We prioritize using more columns (larger width) over perfect balance, unless it's very egregious
26 for (let c = maxColumns; c >= 2; c--) {
27 // If perfect match (divisor)
28 if (itemCount % c === 0) return c
29 }
30
31 // Default to max columns if no nice divisor found
32 return maxColumns
33}

Callers 2

computeGridLayoutFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected