Store username for every room (#1381)

* store username for every room

* add missing fun
This commit is contained in:
Kostas Bariotis 2020-04-11 17:13:10 +01:00 committed by GitHub
parent 5e2f164026
commit 7b3816d0d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 7 deletions

View file

@ -113,6 +113,10 @@ import { unstable_batchedUpdates } from "react-dom";
import { SceneStateCallbackRemover } from "../scene/globalScene";
import { isLinearElement } from "../element/typeChecks";
import { actionFinalize } from "../actions";
import {
restoreUsernameFromLocalStorage,
saveUsernameToLocalStorage,
} from "../data/localStorage";
/**
* @param func handler taking at most single parameter (event).
@ -239,6 +243,14 @@ export class App extends React.Component<any, AppState> {
elements={globalSceneState.getElements()}
onRoomCreate={this.openPortal}
onRoomDestroy={this.closePortal}
onUsernameChange={(username) => {
if (this.portal.socket && this.portal.roomID && username) {
saveUsernameToLocalStorage(this.portal.roomID, username);
}
this.setState({
username,
});
}}
onLockToggle={this.toggleLock}
/>
<main>
@ -909,8 +921,17 @@ export class App extends React.Component<any, AppState> {
);
this.portal.socket!.on("init-room", () => {
this.portal.socket &&
if (this.portal.socket && this.portal.roomID) {
const username = restoreUsernameFromLocalStorage(this.portal.roomID);
this.portal.socket.emit("join-room", this.portal.roomID);
if (username) {
this.setState({
username,
});
}
}
});
this.portal.socket!.on(
"client-broadcast",