Files
cinny/src/app/hooks/useZoom.ts
T

27 lines
464 B
TypeScript
Raw Normal View History

2023-10-06 13:44:06 +11:00
import { useState } from 'react';
export const useZoom = (step: number, min = 0.1, max = 5) => {
const [zoom, setZoom] = useState<number>(1);
const zoomIn = () => {
setZoom((z) => {
const newZ = z + step;
return newZ > max ? z : newZ;
});
};
const zoomOut = () => {
setZoom((z) => {
const newZ = z - step;
return newZ < min ? z : newZ;
});
};
return {
zoom,
setZoom,
zoomIn,
zoomOut,
};
};