Skip to content

@ue-too/board / createDefaultZoomByOnlyHandler

Function: createDefaultZoomByOnlyHandler()

createDefaultZoomByOnlyHandler(): ZoomByHandlerFunction

Defined in: packages/board/src/camera/camera-rig/zoom-handler.ts:480

Creates a default "zoom by" handler pipeline for relative zoom operations.

Returns

ZoomByHandlerFunction

Zoom-by handler function with clamping and restriction

Remarks

The default handler pipeline applies transformations in this order:

  1. Clamping (clampZoomByHandler): Adjusts delta to respect boundaries
  2. Restriction (restrictZoomByHandler): Returns zero delta if locked

This ensures that:

  • Resulting zoom level stays within configured min/max boundaries
  • Zoom can be completely disabled via restrictZoom flag
  • Delta is adjusted to prevent boundary violations

The pipeline is specifically for zoom operations without pan compensation. For zoom-at-point operations, use DefaultCameraRig.zoomByAt which combines zoom and pan handlers.

Examples

typescript
const zoomBy = createDefaultZoomByOnlyHandler();

camera.zoomLevel = 3.5;
camera.zoomBoundaries = { max: 4.0 };

// Use in camera rig
const delta = 1.0;  // Would exceed max
const constrained = zoomBy(delta, camera, {
  clampZoom: true,
  restrictZoom: false
});
// constrained = 0.5 (adjusted to reach boundary exactly)
camera.setZoomLevel(camera.zoomLevel + constrained);
typescript
// Create custom pipeline with dampening
const dampenedZoomBy = createHandlerChain<number, [BoardCamera, ZoomHandlerConfig]>(
  (delta) => delta * 0.7,   // 30% dampening
  clampZoomByHandler,       // From default
  restrictZoomByHandler     // From default
);

See