MCPcopy Create free account
hub / github.com/RtlZeroMemory/Rezi / collapsePanel

Function collapsePanel

packages/core/src/widgets/splitPane.ts:266–294  ·  view source on GitHub ↗
(
  sizes: readonly number[],
  index: number,
  minSizes?: readonly number[],
)

Source from the content-addressed store, hash-verified

264 * @returns Updated sizes with collapsed panel
265 */
266export function collapsePanel(
267 sizes: readonly number[],
268 index: number,
269 minSizes?: readonly number[],
270): readonly number[] {
271 if (index < 0 || index >= sizes.length) {
272 return sizes;
273 }
274
275 const newSizes = [...sizes];
276 const currentSize = sizes[index] ?? 0;
277 const minSize = minSizes?.[index] ?? 0;
278 const delta = currentSize - minSize;
279
280 if (delta <= 0) {
281 return sizes;
282 }
283
284 newSizes[index] = minSize;
285
286 // Distribute delta to adjacent panels
287 if (index > 0) {
288 newSizes[index - 1] = (newSizes[index - 1] ?? 0) + delta;
289 } else if (index < sizes.length - 1) {
290 newSizes[index + 1] = (newSizes[index + 1] ?? 0) + delta;
291 }
292
293 return Object.freeze(newSizes);
294}
295
296/**
297 * Expand a collapsed panel.

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected