react-img-editor-pro
Version:
图片编辑器(微信截图编辑 PRO 版),来自 react-img-editor
74 lines (64 loc) • 2.57 kB
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import ColorSetting from './ColorSetting';
import FontSizeSetting from './FontSizeSetting';
import LineTypeSetting from './LineTypeSetting';
import React from 'react';
import StrokeWidthSetting from './StrokeWidthSetting';
import { prefixCls } from '../../common/constants';
export default function ParamSetting(props) {
function handleStrokeWidthChange(strokeWidth) {
props.onChange(_extends(_extends({}, props.paramValue), {
strokeWidth: strokeWidth
}));
}
function handleLineTypeChange(lineType) {
props.onChange(_extends(_extends({}, props.paramValue), {
lineType: lineType
}));
}
function handleColorChange(color) {
props.onChange(_extends(_extends({}, props.paramValue), {
color: color
}));
}
function handleFontSizeChange(fontSize) {
props.onChange(_extends(_extends({}, props.paramValue), {
fontSize: fontSize
}));
}
function renderParamComponent(paramName) {
switch (paramName) {
case 'strokeWidth':
return /*#__PURE__*/React.createElement(StrokeWidthSetting, {
key: "stroke-width-setting",
value: props.paramValue ? props.paramValue['strokeWidth'] : undefined,
onChange: handleStrokeWidthChange
});
case 'lineType':
return /*#__PURE__*/React.createElement(LineTypeSetting, {
key: "line-type-setting",
value: props.paramValue ? props.paramValue['lineType'] : undefined,
onChange: handleLineTypeChange
});
case 'color':
return /*#__PURE__*/React.createElement(ColorSetting, {
key: "color-setting",
value: props.paramValue ? props.paramValue['color'] : undefined,
onChange: handleColorChange
});
case 'fontSize':
return /*#__PURE__*/React.createElement(FontSizeSetting, {
key: "font-size-setting",
value: props.paramValue ? props.paramValue['fontSize'] : undefined,
onChange: handleFontSizeChange
});
default:
return null;
}
}
return /*#__PURE__*/React.createElement("div", {
className: "".concat(prefixCls, "-param-setting")
}, props.paramNames.map(function (paramName) {
return renderParamComponent(paramName);
}));
}