1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { tick } from "https://esm.town/v/beneskildsen/tick";
import { initBonsaiState } from "https://esm.town/v/beneskildsen/initBonsaiState";
export const bonsaiReducer = (state, action) => {
if (state === undefined) return initBonsaiState();
switch (action.type) {
case "TICK": {
return tick(state);
}
case "SNIP": {
// don't even use doSnip on here since it's too slow
const { pos, clientID, grammar } = action;
if (clientID != 1 && state.snips[clientID]) {
return state;
}
state.snips[clientID] = true;
return { ...state, grammar };
}
case "CLEAR_SNIPS": {
return { ...state, snips: {} };
}
}
return state;
};
Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
Comments
Nobody has commented on this val yet: be the first!
October 23, 2023