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