choices.js
Version:
A vanilla JS customisable text input/select box plugin
33 lines (26 loc) • 734 B
text/typescript
import { GroupActions } from '../actions/groups';
import { State } from '../interfaces/state';
import { ActionType } from '../interfaces';
import { StateUpdate } from '../interfaces/store';
import { ChoiceActions } from '../actions/choices';
type ActionTypes = ChoiceActions | GroupActions;
type StateType = State['groups'];
export default function groups(s: StateType, action: ActionTypes): StateUpdate<StateType> {
let state = s;
let update = true;
switch (action.type) {
case ActionType.ADD_GROUP: {
state.push(action.group);
break;
}
case ActionType.CLEAR_CHOICES: {
state = [];
break;
}
default: {
update = false;
break;
}
}
return { state, update };
}