@@ -2,21 +2,20 @@ import type {CanvasSize, ContentSize} from './types';
2
2
3
3
type GetCanvasFitScale = ( props : { canvasSize : CanvasSize ; contentSize : ContentSize } ) => { scaleX : number ; scaleY : number ; minScale : number ; maxScale : number } ;
4
4
5
- const getCanvasFitScale : GetCanvasFitScale = ( { canvasSize, contentSize} ) => {
6
- const scaleX = canvasSize . width / contentSize . width ;
7
- const scaleY = canvasSize . height / contentSize . height ;
8
-
9
- const minScale = Math . min ( scaleX , scaleY ) ;
10
- const maxScale = Math . max ( scaleX , scaleY ) ;
11
-
12
- return { scaleX, scaleY, minScale, maxScale} ;
13
- } ;
14
-
15
5
/** Clamps a value between a lower and upper bound */
16
6
function clamp ( value : number , lowerBound : number , upperBound : number ) {
17
7
'worklet' ;
18
8
19
9
return Math . min ( Math . max ( lowerBound , value ) , upperBound ) ;
20
10
}
21
11
12
+ const getCanvasFitScale : GetCanvasFitScale = ( { canvasSize, contentSize} ) => {
13
+ const scaleX = clamp ( canvasSize . width / contentSize . width , 0 , 1 ) ;
14
+ const scaleY = clamp ( canvasSize . height / contentSize . height , 0 , 1 ) ;
15
+ const minScale = Math . min ( scaleX , scaleY ) ;
16
+ const maxScale = Math . max ( scaleX , scaleY ) ;
17
+
18
+ return { scaleX, scaleY, minScale, maxScale} ;
19
+ } ;
20
+
22
21
export { getCanvasFitScale , clamp } ;
0 commit comments