tdesign-react
Version:
TDesign Component for React
49 lines (45 loc) • 1.61 kB
JavaScript
/**
* tdesign v1.11.6
* (c) 2025 tdesign
* @license MIT
*/
import { _ as _slicedToArray } from '../../_chunks/dep-889449c8.js';
import { useState, useCallback } from 'react';
import '../../_chunks/dep-901cf2d8.js';
var useScale = function useScale(imageScale) {
var _useState = useState(function () {
var _imageScale$defaultSc;
return (_imageScale$defaultSc = imageScale.defaultScale) !== null && _imageScale$defaultSc !== void 0 ? _imageScale$defaultSc : 1;
}),
_useState2 = _slicedToArray(_useState, 2),
scale = _useState2[0],
setScale = _useState2[1];
var onZoom = useCallback(function () {
setScale(function (scale2) {
var newScale = scale2 + imageScale.step;
if (newScale < imageScale.min) return imageScale.min;
if (newScale > imageScale.max) return imageScale.max;
return newScale;
});
}, [imageScale]);
var onZoomOut = useCallback(function () {
setScale(function (scale2) {
var newScale = scale2 - imageScale.step;
if (newScale < imageScale.min) return imageScale.min;
if (newScale > imageScale.max) return imageScale.max;
return newScale;
});
}, [imageScale]);
var onResetScale = useCallback(function () {
var _imageScale$defaultSc2;
return setScale((_imageScale$defaultSc2 = imageScale.defaultScale) !== null && _imageScale$defaultSc2 !== void 0 ? _imageScale$defaultSc2 : 1);
}, [imageScale]);
return {
scale: scale,
onZoom: onZoom,
onZoomOut: onZoomOut,
onResetScale: onResetScale
};
};
export { useScale as default };
//# sourceMappingURL=useScale.js.map