linkmore-design
Version:
🌈 🚀lm组件库。🚀
52 lines (51 loc) • 1.42 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
// 初始化状态值
var defaultState = {
// 容器盒子大小
resize: {
width: 0,
height: 0
},
currentIndex: 0,
// 当前选中的图片索引
currentUrl: '',
// * 当前选中的图片链接
// 当前选中的图片变换
transform: {
scale: 1,
// 缩放倍数
rotateZ: 0 // Z轴旋转方向
}
};
// 状态管理操作
export var reducer = function reducer(state, action) {
var resize = action.resize,
transform = action.transform,
current = action.current;
switch (action.type) {
case 'changeResize':
return _objectSpread(_objectSpread({}, state), {}, {
resize: resize
});
case 'changeTransform':
// 改变转换
return _objectSpread(_objectSpread({}, state), {}, {
transform: _objectSpread(_objectSpread({}, state.transform), transform)
});
case 'changeCurrent':
// 改变当前选中的图片
return _objectSpread(_objectSpread(_objectSpread({}, state), current), {}, {
transform: defaultState.transform
});
default:
throw new Error();
}
};
// 仅在初始化时触发一次
export var initialState = function initialState(props) {
var initialIndex = props.initialIndex;
return _objectSpread(_objectSpread({}, defaultState), {}, {
currentIndex: initialIndex
});
};
export default reducer;