State Management, Simplifying Some Components #1

Merged
innocuous-symmetry merged 8 commits from state-mgmt-backtrack into master 2022-07-24 19:14:17 +00:00
3 changed files with 68 additions and 1 deletions
Showing only changes of commit b501424da3 - Show all commits

View File

@@ -108,4 +108,4 @@ export enum GemValue {
diamond,
onyx,
gold,
}
}

View File

@@ -0,0 +1,17 @@
import { AppState } from "./types";
export default function useActionStatus(state: AppState) {
switch (true) {
case (state.actions.getChips.active):
console.log('get chips active');
break;
case (state.actions.buyCard.active):
console.log('buy card active');
break;
case (state.actions.reserveCard.active):
console.log("reserve card active")
break;
default:
break;
}
}

View File

@@ -0,0 +1,50 @@
import { ActionTypes, AppState, GameActions } from "./types";
export default function useActionType(state: AppState, action: GameActions) {
let newActions: ActionTypes = {
getChips: { active: false },
buyCard: { active: false },
reserveCard: { active: false }
}
switch (action) {
case (GameActions.GETCHIPS):
newActions = {
...newActions,
getChips: {
active: true,
chips: [],
valid: false
}
}
break;
case (GameActions.BUYCARD):
newActions = {
...newActions,
buyCard: {
active: true,
card: null
}
}
break;
case (GameActions.RESERVECARD):
newActions = {
...newActions,
reserveCard: {
active: true,
card: null,
includeGold: false
}
}
break;
case (GameActions.AWAIT):
break;
default:
break;
}
return {
...state,
actions: newActions
}
}