mirror of
https://git.rezel.net/LudoTech/traque.git
synced 2026-04-10 16:30:18 +02:00
29 lines
846 B
JavaScript
29 lines
846 B
JavaScript
// React
|
|
import { useCallback } from "react";
|
|
// Hook
|
|
import { useSocketCommands } from "./useSocketCommands";
|
|
|
|
export const useGame = () => {
|
|
const { emitSendPosition, emitCapture } = useSocketCommands();
|
|
|
|
const sendCurrentPosition = useCallback(() => {
|
|
emitSendPosition();
|
|
}, [emitSendPosition]);
|
|
|
|
const capture = useCallback((captureCode) => {
|
|
return new Promise((resolve, reject) => {
|
|
const timeout = setTimeout(() => {
|
|
console.warn("Server timeout: capture", captureCode);
|
|
reject(new Error("Timeout"));
|
|
}, 3000);
|
|
|
|
emitCapture(captureCode, (response) => {
|
|
clearTimeout(timeout);
|
|
resolve(response);
|
|
});
|
|
});
|
|
}, [emitCapture]);
|
|
|
|
return { sendCurrentPosition, capture };
|
|
};
|