init backend
This commit is contained in:
parent
3690de9fe0
commit
54701c196a
38 changed files with 480 additions and 0 deletions
45
frontend/src/hooks/useRoomName.ts
Normal file
45
frontend/src/hooks/useRoomName.ts
Normal file
|
@ -0,0 +1,45 @@
|
|||
import { useCallback, useState } from "react";
|
||||
|
||||
function useRoomName() {
|
||||
const [roomName, setRoomName] = useState(getRoomNameFromUrl());
|
||||
|
||||
const updateRoomName = useCallback(
|
||||
(newName: string) => {
|
||||
setRoomName(newName);
|
||||
console.log("[Rooms] update room name", newName);
|
||||
},
|
||||
[setRoomName]
|
||||
);
|
||||
|
||||
const submitRoomName = useCallback(
|
||||
() => {
|
||||
setRoomNameInUrl(roomName);
|
||||
setRoomNameInTitle(roomName);
|
||||
},
|
||||
[roomName]
|
||||
);
|
||||
|
||||
return { roomName, updateRoomName, submitRoomName };
|
||||
}
|
||||
|
||||
function getRoomNameFromUrl(): string {
|
||||
const pathName = location.pathname;
|
||||
const roomName = pathName
|
||||
.substring(pathName.lastIndexOf("/"), pathName.length)
|
||||
.replace("/", "");
|
||||
console.log("[Rooms] Got roomName from url", roomName);
|
||||
setRoomNameInTitle(roomName);
|
||||
return roomName;
|
||||
}
|
||||
|
||||
function setRoomNameInUrl(roomName: string) {
|
||||
history.pushState(history.state, "_", roomName);
|
||||
}
|
||||
|
||||
function setRoomNameInTitle(roomName: string) {
|
||||
if (!!roomName) {
|
||||
document.title = roomName;
|
||||
}
|
||||
}
|
||||
|
||||
export { useRoomName };
|
Loading…
Add table
Add a link
Reference in a new issue