@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
Zoom-by handler function with clamping and restriction
Remarks
The default handler pipeline applies transformations in this order:
- Clamping (clampZoomByHandler): Adjusts delta to respect boundaries
- 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
restrictZoomflag - 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
- createHandlerChain for creating custom handler pipelines
- clampZoomByHandler for the clamping step
- restrictZoomByHandler for the restriction step