State Management, Simplifying Some Components #1
@@ -108,4 +108,4 @@ export enum GemValue {
|
||||
diamond,
|
||||
onyx,
|
||||
gold,
|
||||
}
|
||||
}
|
||||
|
||||
17
src/util/useActionStatus.tsx
Normal file
17
src/util/useActionStatus.tsx
Normal 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;
|
||||
}
|
||||
}
|
||||
50
src/util/useActionType.tsx
Normal file
50
src/util/useActionType.tsx
Normal 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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user