linkmore-design
Version:
🌈 🚀lm组件库。🚀
48 lines (47 loc) • 1.33 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
// 状态管理操作
export var reducer = function reducer(state, action) {
var fileList = action.fileList,
percent = action.percent,
cropFile = action.cropFile,
preview = action.preview;
switch (action.type) {
case 'changeFileList':
return _objectSpread(_objectSpread({}, state), {}, {
fileList: fileList
});
case 'changePercent':
return _objectSpread(_objectSpread({}, state), {}, {
percent: percent
});
case 'changeCropFile':
return _objectSpread(_objectSpread({}, state), {}, {
cropFile: cropFile
});
case 'changePreview':
return _objectSpread(_objectSpread({}, state), {}, {
preview: _objectSpread(_objectSpread({}, state.preview), preview)
});
default:
throw new Error();
}
};
// 仅在初始化时触发一次
export var initialState = function initialState(props) {
var defaultFileList = props.defaultFileList,
upload = props.upload;
return {
upload: upload,
process: 0,
status: 'done',
fileList: defaultFileList,
// 用于非受控模式时的数据收集
cropFile: null,
// 需要裁剪的图片
preview: {
index: 0,
visible: false
}
};
};
export default reducer;