Files
desktop/app/providers/ProtocolProvider/usePacket.ts
rosetta 83f38dc63f 'init'
2026-01-30 05:01:05 +02:00

26 lines
904 B
TypeScript

import { useEffect } from "react";
import { useProtocol } from "./useProtocol";
import Packet from "@/app/providers/ProtocolProvider/protocol/packet";
export const usePacket = (packetId : number, callback: (packet : any) => void, deps?: any[]) => {
const {protocol} = useProtocol();
const waitPacket = (packetId: number, callback: (packet: Packet) => void) : number => {
return protocol.waitPacket(packetId, callback);
};
const unwaitPacket = (packetId: number, callback: (packet: Packet) => void) => {
protocol.unwaitPacket(packetId, callback);
};
useEffect(() => {
let unwait = (receivedPacket: Packet) => {
callback(receivedPacket);
};
waitPacket(packetId, unwait);
return () => {
// Cleanup function to remove the packet listener
unwaitPacket(packetId, unwait);
};
}, deps);
}