@vimeo/iris
Version:
Vimeo Design System
27 lines (24 loc) • 910 B
JavaScript
import { c as __assign } from '../../tslib.es6-7f0e734f.js';
function initialState() {
return {
gridGap: 24,
draggedFrom: null,
draggedTo: null,
originalOrder: null,
updatedOrder: null,
};
}
function reducer(state, _a) {
var type = _a.type, _b = _a.payload, payload = _b === void 0 ? null : _b;
switch (type) {
case 'SET_GRID_GAP':
return __assign(__assign({}, state), { gridGap: payload });
case 'START_DRAG':
return __assign(__assign({}, state), { draggedFrom: payload.position, originalOrder: payload.list });
case 'SET_LIST_ORDER':
return __assign(__assign({}, state), { updatedOrder: payload.list, draggedTo: payload.position });
case 'END_DRAG':
return __assign(__assign({}, state), { draggedFrom: null, draggedTo: null });
}
}
export { initialState, reducer };