update for event emitter

This commit is contained in:
Halit Aksoy 2022-09-02 00:03:37 +03:00
parent 51d541b5e7
commit 419ae7600a

View File

@ -29,35 +29,32 @@ const MancalaApp: FunctionComponent = () => {
setConnetionState("connected"); setConnetionState("connected");
}; };
const onConnectionLost = () => { const onConnectionLost = () => {
connectToServer("reconnecting"); setConnetionState("reconnecting");
connectToServer();
}; };
const onConnectionError = (event: Event) => { const onConnectionError = (event: Event) => {
setConnetionState("error"); setConnetionState("error");
connectToServer();
}; };
const connectToServer = async (connectionState: ConnectionState) => { const onThemeChange = (theme: Theme) => {
setConnetionState(connectionState); setTheme(theme)
}
const connectToServer = async () => {
const userKey = await context.userKeyStore.getUserKey(); const userKey = await context.userKeyStore.getUserKey();
setUserKey(userKey); setUserKey(userKey);
const rtmtws = context.rtmt as RTMTWS; (context.rtmt as RTMTWS).initWebSocket(userKey);
if (rtmtws) {
rtmtws.initWebSocket(
userKey,
onConnectionDone,
onConnectionLost,
onConnectionError
);
} else {
console.error("context.rtmt is not RTMTWS");
}
}; };
React.useEffect(() => { React.useEffect(() => {
connectToServer("connecting"); context.rtmt.on("open", onConnectionDone);
context.themeManager.onThemeChange = (theme: Theme) => { context.rtmt.on("close", onConnectionLost);
setTheme(theme); context.rtmt.on("error", onConnectionError);
} context.themeManager.on("themechange", onThemeChange);
setConnetionState("connecting");
connectToServer();
return () => { return () => {
// todo: dispose rtmt.dispose context.rtmt.dispose();
//context.rtmt.dispose(); context.themeManager.on("themechange", onThemeChange);
}; };
}, []); }, []);