linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
81 lines (78 loc) β’ 2.38 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _iconFont = _interopRequireDefault(require("../../icon-font"));
var _slider = _interopRequireDefault(require("../../slider"));
const ResetSlider = ({
value,
onChange,
leftIcon,
rightIcon,
...props
}) => {
// ε
const decrement = () => {
if (!(value > props.min)) return;
const nValue = Math.round(value * 100 - props.step * 100) / 100;
onChange?.(nValue);
};
// ε’
const increment = () => {
if (!(value < props.max)) return;
const nValue = Math.round(value * 100 + props.step * 100) / 100;
onChange?.(nValue);
};
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_iconFont.default, {
type: leftIcon,
onClick: decrement
}), /*#__PURE__*/_react.default.createElement(_slider.default, (0, _extends2.default)({}, props, {
value: value,
onChange: val => onChange(val)
})), /*#__PURE__*/_react.default.createElement(_iconFont.default, {
type: rightIcon,
onClick: increment
}));
};
// εΎηθ°ζ΄
const Operate = ({
instance
}) => {
const {
state,
setTransform
} = instance;
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
className: "img_crop_control"
}, /*#__PURE__*/_react.default.createElement(ResetSlider, {
value: state.zoom,
onChange: zoom => setTransform({
zoom
}),
defaultValue: 1,
leftIcon: "lmweb-minus",
rightIcon: "lmweb-plus",
step: 0.1,
min: 0.1,
max: 3
})), /*#__PURE__*/_react.default.createElement("div", {
className: "img_crop_control"
}, /*#__PURE__*/_react.default.createElement(ResetSlider, {
value: state.rotation,
onChange: rotation => setTransform({
rotation
}),
defaultValue: 0,
leftIcon: "lmweb-rotate-left",
rightIcon: "lmweb-rotate-right",
step: 1,
min: -180,
max: 180
})));
};
var _default = /*#__PURE__*/_react.default.memo(Operate);
exports.default = _default;