@ue-too/board / zoomLevelBoundariesShouldUpdate
Function: zoomLevelBoundariesShouldUpdate()
zoomLevelBoundariesShouldUpdate(
zoomLevelBoundaries,targetMinZoomLevel):targetMinZoomLevel is number
Defined in: packages/board/src/utils/zoomlevel-adjustment.ts:144
Determines if zoom level boundaries should be updated.
Parameters
zoomLevelBoundaries
Current zoom level limits
ZoomLevelLimits | undefined
targetMinZoomLevel
Proposed new minimum zoom level
number | undefined
Returns
targetMinZoomLevel is number
True if boundaries should be updated (type guard for targetMinZoomLevel)
Remarks
Zoom level boundary updates only tighten (increase minimum zoom), never relax. This prevents the camera from zooming out too far when boundaries shrink.
Returns true (update needed) when:
- No current boundaries exist (first-time setup)
- Target minimum is higher than current minimum (tightening)
Returns false (no update) when:
- Target is undefined (invalid/incomplete)
- Target is Infinity (invalid state)
- Target is lower than current minimum (would relax, not allowed)
This function is a type guard: when it returns true, TypeScript knows targetMinZoomLevel is a number (not undefined).
Example
const currentLimits = { min: 0.5, max: 10 };
const newMin = 0.8;
if (zoomLevelBoundariesShouldUpdate(currentLimits, newMin)) {
// Safe to use newMin as number here
currentLimits.min = newMin; // Tighten the limit
}
// No update for lower values
zoomLevelBoundariesShouldUpdate(currentLimits, 0.3); // false