import { useReactor, useReactorMessage } from "@reactor-team/js-sdk";
import { useState } from "react";
function ReactorController() {
const status = useReactor((state) => state.status);
const connect = useReactor((state) => state.connect);
const disconnect = useReactor((state) => state.disconnect);
const sendMessage = useReactor((state) => state.sendMessage);
const [messages, setMessages] = useState<any[]>([]);
// Listen for messages from the model
useReactorMessage((message) => {
setMessages((prev) => [...prev, message]);
});
return (
<div>
<div>Status: {status}</div>
<button
onClick={connect}
disabled={status !== "disconnected"}
>
Connect
</button>
<button
onClick={disconnect}
disabled={status === "disconnected"}
>
Disconnect
</button>
<button
onClick={() => sendMessage({ action: "ping" })}
disabled={status !== "ready"}
>
Send Message
</button>
<div>
<h3>Messages:</h3>
{messages.map((msg, i) => (
<pre key={i}>{JSON.stringify(msg, null, 2)}</pre>
))}
</div>
</div>
);
}