linkmore-design
Version:
🌈 🚀lm组件库。🚀
82 lines (80 loc) • 2.33 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
// 初始化状态值
var defaultState = {
visible: false,
isChange: false,
// 是否改变
filter: [],
columns: [],
size: 'middle',
card: [],
cardMode: 'single',
previewSize: 40
};
// 仅在初始化时触发一次
export var initialState = function initialState(props) {
var _ref = props || {},
_ref$filter = _ref.filter,
filter = _ref$filter === void 0 ? [] : _ref$filter,
_ref$columns = _ref.columns,
columns = _ref$columns === void 0 ? [] : _ref$columns,
size = _ref.size,
cardMode = _ref.cardMode,
previewSize = _ref.previewSize,
_ref$card = _ref.card,
card = _ref$card === void 0 ? [] : _ref$card;
return _objectSpread(_objectSpread({}, defaultState), {}, {
filter: filter,
columns: columns,
size: size,
card: card,
cardMode: cardMode,
previewSize: previewSize
});
};
// 状态管理操作
export var reducer = function reducer(state, action) {
var visible = action.visible,
filter = action.filter,
columns = action.columns,
card = action.card,
size = action.size,
cardMode = action.cardMode,
previewSize = action.previewSize,
props = action.props,
isChange = action.isChange;
var dispatch = {
init: _objectSpread(_objectSpread({}, state), initialState(props)),
update: _objectSpread(_objectSpread({}, state), props),
changeVisible: _objectSpread(_objectSpread({}, state), {}, {
visible: visible
}),
changeIsChange: _objectSpread(_objectSpread({}, state), {}, {
isChange: isChange
}),
changeFilter: _objectSpread(_objectSpread({}, state), {}, {
filter: filter
}),
changeColumns: _objectSpread(_objectSpread({}, state), {}, {
columns: columns
}),
changeCard: _objectSpread(_objectSpread({}, state), {}, {
isChange: true,
card: card
}),
changeSize: _objectSpread(_objectSpread({}, state), {}, {
size: size
}),
changeCardMode: _objectSpread(_objectSpread({}, state), {}, {
cardMode: cardMode
}),
changePreviewSize: _objectSpread(_objectSpread({}, state), {}, {
previewSize: previewSize
})
};
if (action.type in dispatch) {
return dispatch[action.type];
}
throw new Error();
};
export default reducer;