Boutons de démarrage du jeu fonctionnels
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
import { AuthState } from "@/utils/features/auth/authSlice"
|
||||
import { GameState } from "@/utils/features/game/gameSlice"
|
||||
import { GamePayload, GameState } from "@/utils/features/game/gameSlice"
|
||||
import { useMutation } from "@tanstack/react-query"
|
||||
|
||||
type ErrorResponse = {
|
||||
@ -13,13 +13,13 @@ type ErrorFuncProps = { response?: ErrorResponse, error?: Error }
|
||||
type onErrorFunc = (props: ErrorFuncProps) => void
|
||||
|
||||
type GameProps = {
|
||||
game: GameState
|
||||
updateGameState: (payload: GamePayload) => { payload: GamePayload, type: "game/updateGameState" }
|
||||
auth: AuthState
|
||||
onPostSuccess?: onPostSuccessFunc
|
||||
onError?: onErrorFunc
|
||||
}
|
||||
|
||||
export const useGameStartMutation = ({ game, auth, onPostSuccess, onError }: GameProps) => {
|
||||
export const useGameStartMutation = ({ auth, updateGameState, onPostSuccess, onError }: GameProps) => {
|
||||
return useMutation({
|
||||
mutationFn: async () => {
|
||||
return fetch(`${process.env.EXPO_PUBLIC_TRAINTRAPE_MOI_SERVER}/game/start/`, {
|
||||
@ -36,6 +36,7 @@ export const useGameStartMutation = ({ game, auth, onPostSuccess, onError }: Gam
|
||||
onError({ response: data })
|
||||
return
|
||||
}
|
||||
updateGameState(data)
|
||||
if (onPostSuccess)
|
||||
onPostSuccess()
|
||||
},
|
||||
@ -46,7 +47,7 @@ export const useGameStartMutation = ({ game, auth, onPostSuccess, onError }: Gam
|
||||
})
|
||||
}
|
||||
|
||||
export const useGameStopMutation = ({ auth, game, onPostSuccess, onError }: GameProps) => {
|
||||
export const useGameStopMutation = ({ auth, updateGameState, onPostSuccess, onError }: GameProps) => {
|
||||
return useMutation({
|
||||
mutationFn: async () => {
|
||||
return fetch(`${process.env.EXPO_PUBLIC_TRAINTRAPE_MOI_SERVER}/game/stop/`, {
|
||||
@ -63,6 +64,7 @@ export const useGameStopMutation = ({ auth, game, onPostSuccess, onError }: Game
|
||||
onError({ response: data })
|
||||
return
|
||||
}
|
||||
updateGameState(data)
|
||||
if (onPostSuccess)
|
||||
onPostSuccess()
|
||||
},
|
||||
@ -73,7 +75,7 @@ export const useGameStopMutation = ({ auth, game, onPostSuccess, onError }: Game
|
||||
})
|
||||
}
|
||||
|
||||
export const useGameSwitchPlayerMutation = ({ auth, game, onPostSuccess, onError }: GameProps) => {
|
||||
export const useGameSwitchPlayerMutation = ({ auth, updateGameState, onPostSuccess, onError }: GameProps) => {
|
||||
return useMutation({
|
||||
mutationFn: async () => {
|
||||
return fetch(`${process.env.EXPO_PUBLIC_TRAINTRAPE_MOI_SERVER}/game/switch-running-player/`, {
|
||||
@ -90,6 +92,7 @@ export const useGameSwitchPlayerMutation = ({ auth, game, onPostSuccess, onError
|
||||
onError({ response: data })
|
||||
return
|
||||
}
|
||||
updateGameState(data)
|
||||
if (onPostSuccess)
|
||||
onPostSuccess()
|
||||
},
|
||||
@ -100,7 +103,7 @@ export const useGameSwitchPlayerMutation = ({ auth, game, onPostSuccess, onError
|
||||
})
|
||||
}
|
||||
|
||||
export const useGameRepairMutation = ({ auth, game, onPostSuccess, onError }: GameProps) => {
|
||||
export const useGameRepairMutation = ({ auth, onPostSuccess, onError }: GameProps) => {
|
||||
return useMutation({
|
||||
mutationFn: async () => {
|
||||
return fetch(`${process.env.EXPO_PUBLIC_TRAINTRAPE_MOI_SERVER}/game/repair/`, {
|
||||
@ -127,7 +130,7 @@ export const useGameRepairMutation = ({ auth, game, onPostSuccess, onError }: Ga
|
||||
})
|
||||
}
|
||||
|
||||
export const useGameResetMutation = ({ auth, game, onPostSuccess, onError }: GameProps) => {
|
||||
export const useGameResetMutation = ({ auth, updateGameState, onPostSuccess, onError }: GameProps) => {
|
||||
return useMutation({
|
||||
mutationFn: async () => {
|
||||
return fetch(`${process.env.EXPO_PUBLIC_TRAINTRAPE_MOI_SERVER}/game/reset/`, {
|
||||
@ -144,6 +147,7 @@ export const useGameResetMutation = ({ auth, game, onPostSuccess, onError }: Gam
|
||||
onError({ response: data })
|
||||
return
|
||||
}
|
||||
updateGameState(data)
|
||||
if (onPostSuccess)
|
||||
onPostSuccess()
|
||||
},
|
||||
|
@ -8,11 +8,6 @@ type ErrorResponse = {
|
||||
statusCode: number
|
||||
}
|
||||
|
||||
type LoginForm = {
|
||||
name: string
|
||||
password: string
|
||||
}
|
||||
|
||||
type onPostSuccessFunc = (data: any, variables: LocationObject, context: unknown) => void
|
||||
type ErrorFuncProps = { response?: ErrorResponse, error?: Error }
|
||||
type onErrorFunc = (props: ErrorFuncProps) => void
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { useAppDispatch, useAppSelector } from "./useStore"
|
||||
import { setPlayerId, updateMoney } from "@/utils/features/game/gameSlice"
|
||||
import { GamePayload, setPlayerId, updateGameState, updateMoney } from "@/utils/features/game/gameSlice"
|
||||
|
||||
export const useGame = () => useAppSelector((state) => state.game)
|
||||
export const useSetPlayerId = () => {
|
||||
@ -10,3 +10,7 @@ export const useUpdateMoney = () => {
|
||||
const dispatch = useAppDispatch()
|
||||
return (money: number) => dispatch(updateMoney(money))
|
||||
}
|
||||
export const useUpdateGameState = () => {
|
||||
const dispatch = useAppDispatch()
|
||||
return (game: GamePayload) => dispatch(updateGameState(game))
|
||||
}
|
||||
|
Reference in New Issue
Block a user