reka-ui
Version:
Vue port for Radix UI Primitives.
22 lines (18 loc) • 455 B
JavaScript
;
const vue = require('vue');
function useStateMachine(initialState, machine) {
const state = vue.ref(initialState);
function reducer(event) {
const nextState = machine[state.value][event];
return nextState ?? state.value;
}
const dispatch = (event) => {
state.value = reducer(event);
};
return {
state,
dispatch
};
}
exports.useStateMachine = useStateMachine;
//# sourceMappingURL=useStateMachine.cjs.map