Overnap

방으로 이동할 때에도 username을 히스토리에 기록

1 import React, { useCallback, useContext } from 'react'; 1 import React, { useCallback, useContext } from 'react';
2 -import { useHistory } from 'react-router'; 2 +import { useHistory, useLocation } from 'react-router';
3 import SocketContext from '../../contexts/SocketContext'; 3 import SocketContext from '../../contexts/SocketContext';
4 import { MessageResponse, MessageType, RawMessage } from '../common/types'; 4 import { MessageResponse, MessageType, RawMessage } from '../common/types';
5 import { RoomData } from '../room/types'; 5 import { RoomData } from '../room/types';
6 import { Room } from './types'; 6 import { Room } from './types';
7 7
8 +interface RoomBlockLocation {
9 + state: { username: string }
10 +}
11 +
8 interface RoomBlockProps { 12 interface RoomBlockProps {
9 room: Room 13 room: Room
10 } 14 }
...@@ -12,6 +16,8 @@ interface RoomBlockProps { ...@@ -12,6 +16,8 @@ interface RoomBlockProps {
12 export const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => { 16 export const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => {
13 const history = useHistory(); 17 const history = useHistory();
14 const socket = useContext(SocketContext); 18 const socket = useContext(SocketContext);
19 + const location: RoomBlockLocation = useLocation();
20 +
15 const joinRoom = useCallback(() => { 21 const joinRoom = useCallback(() => {
16 if (room.currentUsers < room.maxUsers) { 22 if (room.currentUsers < room.maxUsers) {
17 const rawMessage: RawMessage = { 23 const rawMessage: RawMessage = {
...@@ -22,7 +28,10 @@ export const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => { ...@@ -22,7 +28,10 @@ export const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => {
22 if (response.ok) { 28 if (response.ok) {
23 history.push({ 29 history.push({
24 pathname: '/' + room.uuid, 30 pathname: '/' + room.uuid,
25 - state: {roomData: response.result!} 31 + state: {
32 + username: location.state.username,
33 + roomData: response.result!
34 + }
26 }); 35 });
27 } else { 36 } else {
28 //TODO: 에러 MODAL을 어케띄우지? 하위컴포넌트에서 훅을 쓰면 어떻게 되는지 확인 37 //TODO: 에러 MODAL을 어케띄우지? 하위컴포넌트에서 훅을 쓰면 어떻게 되는지 확인
......