diff --git a/src/util/types.ts b/src/util/types.ts index 96a8a1e..0237090 100644 --- a/src/util/types.ts +++ b/src/util/types.ts @@ -108,4 +108,4 @@ export enum GemValue { diamond, onyx, gold, -} \ No newline at end of file +} diff --git a/src/util/useActionStatus.tsx b/src/util/useActionStatus.tsx new file mode 100644 index 0000000..f632a2d --- /dev/null +++ b/src/util/useActionStatus.tsx @@ -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; + } +} \ No newline at end of file diff --git a/src/util/useActionType.tsx b/src/util/useActionType.tsx new file mode 100644 index 0000000..3b1d623 --- /dev/null +++ b/src/util/useActionType.tsx @@ -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 + } +} \ No newline at end of file