TIFNGK_E41222719/src/hooks/useSocket.ts

34 lines
797 B
TypeScript

import { useEffect, useState } from "react";
import { io, Socket } from "socket.io-client";
import { socketPath } from "../utils/const";
export const useSocket = () => {
const [socket, setSocket] = useState<Socket | null>(null);
const [progress, setProgress] = useState({ status: "", percent: 0 });
useEffect(() => {
const socketInitializer = async () => {
await fetch(socketPath);
const newSocket = io();
newSocket.on("progress", (data) => {
setProgress(data);
});
setSocket(newSocket);
};
socketInitializer();
return () => {
if (socket) socket.disconnect();
};
}, []);
const startAnalysis = (payload: any) => {
if (socket) socket.emit("start-analysis", payload);
};
return { progress, startAnalysis };
};