Showing
21 changed files
with
93 additions
and
53 deletions
1 | import React from 'react'; | 1 | import React from 'react'; |
2 | import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; | 2 | import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; |
3 | import { socket, SocketProvider } from './contexts/SocketContext'; | 3 | import { socket, SocketProvider } from './contexts/SocketContext'; |
4 | -import { Login } from './pages/Login'; | 4 | +import Login from './pages/Login'; |
5 | -import { Room } from './pages/Room'; | 5 | +import Room from './pages/Room'; |
6 | -import { Rooms } from './pages/Rooms'; | 6 | +import Rooms from './pages/Rooms'; |
7 | 7 | ||
8 | const App: React.FC = () => { | 8 | const App: React.FC = () => { |
9 | return ( | 9 | return ( | ... | ... |
1 | import React from 'react'; | 1 | import React from 'react'; |
2 | 2 | ||
3 | -export const Footer: React.FC = () => { | 3 | +const Footer: React.FC = () => { |
4 | return ( | 4 | return ( |
5 | <div className="mt-auto flex justify-center items-center"> | 5 | <div className="mt-auto flex justify-center items-center"> |
6 | <a href="http://khuhub.khu.ac.kr/2020105578/nodejs-game"> | 6 | <a href="http://khuhub.khu.ac.kr/2020105578/nodejs-game"> |
... | @@ -18,4 +18,6 @@ export const Footer: React.FC = () => { | ... | @@ -18,4 +18,6 @@ export const Footer: React.FC = () => { |
18 | </div> | 18 | </div> |
19 | </div> | 19 | </div> |
20 | ); | 20 | ); |
21 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
21 | +} | ||
22 | + | ||
23 | +export default Footer; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import React from 'react'; | 1 | import React from 'react'; |
2 | -import { Footer } from './Footer'; | 2 | +import Footer from './Footer'; |
3 | 3 | ||
4 | -export const Main: React.FC = ({ children }) => { | 4 | +const Main: React.FC = ({ children }) => { |
5 | return ( | 5 | return ( |
6 | <div className="flex flex-col items-center w-screen h-screen"> | 6 | <div className="flex flex-col items-center w-screen h-screen"> |
7 | {children} | 7 | {children} |
8 | <Footer/> | 8 | <Footer/> |
9 | </div> | 9 | </div> |
10 | ); | 10 | ); |
11 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
11 | +} | ||
12 | + | ||
13 | +export default Main; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -9,7 +9,7 @@ interface CanvasProps { | ... | @@ -9,7 +9,7 @@ interface CanvasProps { |
9 | isDrawer: boolean; | 9 | isDrawer: boolean; |
10 | } | 10 | } |
11 | 11 | ||
12 | -export const Canvas: React.FC<CanvasProps> = ({ isDrawer }) => { | 12 | +const Canvas: React.FC<CanvasProps> = ({ isDrawer }) => { |
13 | const socket = useContext(SocketContext); | 13 | const socket = useContext(SocketContext); |
14 | const canvasRef = useRef<HTMLCanvasElement>(null); | 14 | const canvasRef = useRef<HTMLCanvasElement>(null); |
15 | 15 | ||
... | @@ -185,4 +185,6 @@ export const Canvas: React.FC<CanvasProps> = ({ isDrawer }) => { | ... | @@ -185,4 +185,6 @@ export const Canvas: React.FC<CanvasProps> = ({ isDrawer }) => { |
185 | <canvas ref={canvasRef} width='640' height='480' /> | 185 | <canvas ref={canvasRef} width='640' height='480' /> |
186 | </div> | 186 | </div> |
187 | ); | 187 | ); |
188 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
188 | +} | ||
189 | + | ||
190 | +export default Canvas; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import React, { useCallback, useContext, useEffect, useRef, useState } from 'react'; | 1 | import React, { useCallback, useContext, useEffect, useRef, useState } from 'react'; |
2 | import SocketContext from '../../contexts/SocketContext'; | 2 | import SocketContext from '../../contexts/SocketContext'; |
3 | import { MessageType, RawMessage } from '../common/types'; | 3 | import { MessageType, RawMessage } from '../common/types'; |
4 | -import { ChatLine } from './ChatLine'; | 4 | +import ChatLine from './ChatLine'; |
5 | import { ChatData } from './types'; | 5 | import { ChatData } from './types'; |
6 | 6 | ||
7 | interface ChatProps { | 7 | interface ChatProps { |
... | @@ -9,7 +9,7 @@ interface ChatProps { | ... | @@ -9,7 +9,7 @@ interface ChatProps { |
9 | h: string; | 9 | h: string; |
10 | } | 10 | } |
11 | 11 | ||
12 | -export const Chat: React.FC<ChatProps> = (props) => { | 12 | +const Chat: React.FC<ChatProps> = (props) => { |
13 | const socket = useContext(SocketContext); | 13 | const socket = useContext(SocketContext); |
14 | const [ input, setInput ] = useState(''); | 14 | const [ input, setInput ] = useState(''); |
15 | const [ chatLines, setChatLines ] = useState<ChatData[]>([]); | 15 | const [ chatLines, setChatLines ] = useState<ChatData[]>([]); |
... | @@ -86,4 +86,6 @@ export const Chat: React.FC<ChatProps> = (props) => { | ... | @@ -86,4 +86,6 @@ export const Chat: React.FC<ChatProps> = (props) => { |
86 | onKeyPress={handleEnter}></input> | 86 | onKeyPress={handleEnter}></input> |
87 | </div> | 87 | </div> |
88 | ); | 88 | ); |
89 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
89 | +} | ||
90 | + | ||
91 | +export default Chat; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -5,9 +5,11 @@ interface ChatLineProps { | ... | @@ -5,9 +5,11 @@ interface ChatLineProps { |
5 | chatData: ChatData; | 5 | chatData: ChatData; |
6 | } | 6 | } |
7 | 7 | ||
8 | -export const ChatLine: React.FC<ChatLineProps> = ({ chatData }) => { | 8 | +const ChatLine: React.FC<ChatLineProps> = ({ chatData }) => { |
9 | return ( | 9 | return ( |
10 | <div className='w-full px-3 py-1.5 bg-white | 10 | <div className='w-full px-3 py-1.5 bg-white |
11 | text-gray-700 text-sm'>{chatData.sender} : {chatData.message}</div> | 11 | text-gray-700 text-sm'>{chatData.sender} : {chatData.message}</div> |
12 | ); | 12 | ); |
13 | } | 13 | } |
14 | + | ||
15 | +export default ChatLine; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -2,10 +2,10 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; | ... | @@ -2,10 +2,10 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; |
2 | import { useLocation } from 'react-router'; | 2 | import { useLocation } from 'react-router'; |
3 | import SocketContext from '../../contexts/SocketContext'; | 3 | import SocketContext from '../../contexts/SocketContext'; |
4 | import { MessageType, RawMessage } from '../common/types'; | 4 | import { MessageType, RawMessage } from '../common/types'; |
5 | -import { Canvas } from './Canvas'; | 5 | +import Canvas from './Canvas'; |
6 | -import { RoundInfo } from './RoundInfo'; | 6 | +import RoundInfo from './RoundInfo'; |
7 | import { RoundData } from './types'; | 7 | import { RoundData } from './types'; |
8 | -import { Word } from './Word'; | 8 | +import Word from './Word'; |
9 | 9 | ||
10 | interface GameBoardLocation { | 10 | interface GameBoardLocation { |
11 | state: { username: string } | 11 | state: { username: string } |
... | @@ -15,7 +15,7 @@ interface GameBoardProps { | ... | @@ -15,7 +15,7 @@ interface GameBoardProps { |
15 | isInGame: boolean | 15 | isInGame: boolean |
16 | } | 16 | } |
17 | 17 | ||
18 | -export const GameBoard: React.FC<GameBoardProps> = ({ isInGame }) => { | 18 | +const GameBoard: React.FC<GameBoardProps> = ({ isInGame }) => { |
19 | const socket = useContext(SocketContext); | 19 | const socket = useContext(SocketContext); |
20 | const location: GameBoardLocation = useLocation(); | 20 | const location: GameBoardLocation = useLocation(); |
21 | 21 | ||
... | @@ -91,4 +91,6 @@ export const GameBoard: React.FC<GameBoardProps> = ({ isInGame }) => { | ... | @@ -91,4 +91,6 @@ export const GameBoard: React.FC<GameBoardProps> = ({ isInGame }) => { |
91 | <RoundInfo round={round} wordChosen={wordChosen} /> | 91 | <RoundInfo round={round} wordChosen={wordChosen} /> |
92 | </div> | 92 | </div> |
93 | ); | 93 | ); |
94 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
94 | +} | ||
95 | + | ||
96 | +export default GameBoard; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -12,7 +12,7 @@ interface ReadyProps { | ... | @@ -12,7 +12,7 @@ interface ReadyProps { |
12 | users: User[]; | 12 | users: User[]; |
13 | } | 13 | } |
14 | 14 | ||
15 | -export const Ready: React.FC<ReadyProps> = ({ users }) => { | 15 | +const Ready: React.FC<ReadyProps> = ({ users }) => { |
16 | const socket = useContext(SocketContext); | 16 | const socket = useContext(SocketContext); |
17 | const location: ReadyLocation = useLocation(); | 17 | const location: ReadyLocation = useLocation(); |
18 | 18 | ||
... | @@ -58,3 +58,5 @@ export const Ready: React.FC<ReadyProps> = ({ users }) => { | ... | @@ -58,3 +58,5 @@ export const Ready: React.FC<ReadyProps> = ({ users }) => { |
58 | onClick={() => handleReady()}>{isAdmin ? 'Start' : 'Ready'}</button> | 58 | onClick={() => handleReady()}>{isAdmin ? 'Start' : 'Ready'}</button> |
59 | ); | 59 | ); |
60 | } | 60 | } |
61 | + | ||
62 | +export default Ready; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -5,11 +5,13 @@ interface RoomInfoProps { | ... | @@ -5,11 +5,13 @@ interface RoomInfoProps { |
5 | roomData: RoomData; | 5 | roomData: RoomData; |
6 | } | 6 | } |
7 | 7 | ||
8 | -export const RoomInfo: React.FC<RoomInfoProps> = ({ roomData }) => { | 8 | +const RoomInfo: React.FC<RoomInfoProps> = ({ roomData }) => { |
9 | return ( | 9 | return ( |
10 | <div className='m-3 my-8 w-5/6 flex items-center place-content-between'> | 10 | <div className='m-3 my-8 w-5/6 flex items-center place-content-between'> |
11 | <div>{roomData.name}</div> | 11 | <div>{roomData.name}</div> |
12 | <div>{roomData.users.length}/{roomData.maxUsers}</div> | 12 | <div>{roomData.users.length}/{roomData.maxUsers}</div> |
13 | </div> | 13 | </div> |
14 | ); | 14 | ); |
15 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
15 | +} | ||
16 | + | ||
17 | +export default RoomInfo; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import React from 'react'; | 1 | import React from 'react'; |
2 | -import { Timer } from './Timer'; | 2 | +import Timer from './Timer'; |
3 | 3 | ||
4 | interface RoundInfoProps { | 4 | interface RoundInfoProps { |
5 | round: number; | 5 | round: number; |
6 | wordChosen: string; | 6 | wordChosen: string; |
7 | } | 7 | } |
8 | 8 | ||
9 | -export const RoundInfo: React.FC<RoundInfoProps> = ({ round, wordChosen }) => { | 9 | +const RoundInfo: React.FC<RoundInfoProps> = ({ round, wordChosen }) => { |
10 | return ( | 10 | return ( |
11 | <div className='p-3 m-3 h-14 rounded shadow flex items-center place-content-between'> | 11 | <div className='p-3 m-3 h-14 rounded shadow flex items-center place-content-between'> |
12 | <Timer /> | 12 | <Timer /> |
... | @@ -14,4 +14,6 @@ export const RoundInfo: React.FC<RoundInfoProps> = ({ round, wordChosen }) => { | ... | @@ -14,4 +14,6 @@ export const RoundInfo: React.FC<RoundInfoProps> = ({ round, wordChosen }) => { |
14 | <div>Round {round}/5</div> | 14 | <div>Round {round}/5</div> |
15 | </div> | 15 | </div> |
16 | ); | 16 | ); |
17 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
17 | +} | ||
18 | + | ||
19 | +export default RoundInfo; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -7,7 +7,7 @@ interface timer { | ... | @@ -7,7 +7,7 @@ interface timer { |
7 | time: number; | 7 | time: number; |
8 | }; | 8 | }; |
9 | 9 | ||
10 | -export const Timer: React.FC = () => { | 10 | +const Timer: React.FC = () => { |
11 | const socket = useContext(SocketContext); | 11 | const socket = useContext(SocketContext); |
12 | 12 | ||
13 | const [ time, setTime ] = useState(0); | 13 | const [ time, setTime ] = useState(0); |
... | @@ -52,4 +52,6 @@ export const Timer: React.FC = () => { | ... | @@ -52,4 +52,6 @@ export const Timer: React.FC = () => { |
52 | 🕒 {time} | 52 | 🕒 {time} |
53 | </div> | 53 | </div> |
54 | ); | 54 | ); |
55 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
55 | +} | ||
56 | + | ||
57 | +export default Timer; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import React from 'react'; | 1 | import React from 'react'; |
2 | import { User } from './types'; | 2 | import { User } from './types'; |
3 | -import { UserStatus } from './UserStatus'; | 3 | +import UserStatus from './UserStatus'; |
4 | 4 | ||
5 | interface UserInfoProps { | 5 | interface UserInfoProps { |
6 | users: User[]; | 6 | users: User[]; |
7 | } | 7 | } |
8 | 8 | ||
9 | -export const UserInfo: React.FC<UserInfoProps> = ({ users }) => { | 9 | +const UserInfo: React.FC<UserInfoProps> = ({ users }) => { |
10 | return ( | 10 | return ( |
11 | <div className='w-7/12 h-60 flex justify-center'> | 11 | <div className='w-7/12 h-60 flex justify-center'> |
12 | {users.map((user) => (<UserStatus key={user.username} user={user} />))} | 12 | {users.map((user) => (<UserStatus key={user.username} user={user} />))} |
13 | </div> | 13 | </div> |
14 | ); | 14 | ); |
15 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
15 | +} | ||
16 | + | ||
17 | +export default UserInfo | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -7,7 +7,7 @@ interface UserRoleProps { | ... | @@ -7,7 +7,7 @@ interface UserRoleProps { |
7 | isInGame: boolean; | 7 | isInGame: boolean; |
8 | } | 8 | } |
9 | 9 | ||
10 | -export const UserRole: React.FC<UserRoleProps> = ({ isInGame }) => { | 10 | +const UserRole: React.FC<UserRoleProps> = ({ isInGame }) => { |
11 | const socket = useContext(SocketContext); | 11 | const socket = useContext(SocketContext); |
12 | const [ roles, setRoles ] = useState<RoleData[]>([]); | 12 | const [ roles, setRoles ] = useState<RoleData[]>([]); |
13 | 13 | ||
... | @@ -39,3 +39,5 @@ export const UserRole: React.FC<UserRoleProps> = ({ isInGame }) => { | ... | @@ -39,3 +39,5 @@ export const UserRole: React.FC<UserRoleProps> = ({ isInGame }) => { |
39 | </div> | 39 | </div> |
40 | ); | 40 | ); |
41 | } | 41 | } |
42 | + | ||
43 | +export default UserRole; | ... | ... |
... | @@ -5,7 +5,7 @@ interface UserStatusProps { | ... | @@ -5,7 +5,7 @@ interface UserStatusProps { |
5 | user: User; | 5 | user: User; |
6 | } | 6 | } |
7 | 7 | ||
8 | -export const UserStatus: React.FC<UserStatusProps> = ({ user }) => { | 8 | +const UserStatus: React.FC<UserStatusProps> = ({ user }) => { |
9 | return ( | 9 | return ( |
10 | <div className='p-3 h-12 m-4 rounded-lg shadow'> | 10 | <div className='p-3 h-12 m-4 rounded-lg shadow'> |
11 | <div className={`${user.admin ? 'text-blue-500' : | 11 | <div className={`${user.admin ? 'text-blue-500' : |
... | @@ -15,4 +15,6 @@ export const UserStatus: React.FC<UserStatusProps> = ({ user }) => { | ... | @@ -15,4 +15,6 @@ export const UserStatus: React.FC<UserStatusProps> = ({ user }) => { |
15 | {user.nickname}</div> | 15 | {user.nickname}</div> |
16 | </div> | 16 | </div> |
17 | ) | 17 | ) |
18 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
18 | +} | ||
19 | + | ||
20 | +export default UserStatus; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -9,7 +9,7 @@ interface WordProps { | ... | @@ -9,7 +9,7 @@ interface WordProps { |
9 | setWords: (value: React.SetStateAction<string[]>) => void; | 9 | setWords: (value: React.SetStateAction<string[]>) => void; |
10 | } | 10 | } |
11 | 11 | ||
12 | -export const Word: React.FC<WordProps> = (props) => { | 12 | +const Word: React.FC<WordProps> = (props) => { |
13 | const socket = useContext(SocketContext); | 13 | const socket = useContext(SocketContext); |
14 | 14 | ||
15 | const handleChoose = useCallback(() => { | 15 | const handleChoose = useCallback(() => { |
... | @@ -35,3 +35,5 @@ export const Word: React.FC<WordProps> = (props) => { | ... | @@ -35,3 +35,5 @@ export const Word: React.FC<WordProps> = (props) => { |
35 | onClick={() => handleChoose()}>{props.word}</button> | 35 | onClick={() => handleChoose()}>{props.word}</button> |
36 | ); | 36 | ); |
37 | } | 37 | } |
38 | + | ||
39 | +export default Word; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -8,7 +8,7 @@ interface CreateLocation { | ... | @@ -8,7 +8,7 @@ interface CreateLocation { |
8 | state: { username: string } | 8 | state: { username: string } |
9 | } | 9 | } |
10 | 10 | ||
11 | -export const Create: React.FC = () => { | 11 | +const Create: React.FC = () => { |
12 | const history = useHistory(); | 12 | const history = useHistory(); |
13 | const socket = useContext(SocketContext); | 13 | const socket = useContext(SocketContext); |
14 | const [ roomName, setRoomName ] = useState(''); | 14 | const [ roomName, setRoomName ] = useState(''); |
... | @@ -54,3 +54,5 @@ export const Create: React.FC = () => { | ... | @@ -54,3 +54,5 @@ export const Create: React.FC = () => { |
54 | </div> | 54 | </div> |
55 | ); | 55 | ); |
56 | } | 56 | } |
57 | + | ||
58 | +export default Create; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -4,7 +4,7 @@ interface RefreshProps { | ... | @@ -4,7 +4,7 @@ interface RefreshProps { |
4 | refreshRooms: () => void | 4 | refreshRooms: () => void |
5 | } | 5 | } |
6 | 6 | ||
7 | -export const Refresh: React.FC<RefreshProps> = ({ refreshRooms }) => { | 7 | +const Refresh: React.FC<RefreshProps> = ({ refreshRooms }) => { |
8 | return ( | 8 | return ( |
9 | <button className="bg-green-500 active:bg-green-600 | 9 | <button className="bg-green-500 active:bg-green-600 |
10 | text-white uppercase text-xl | 10 | text-white uppercase text-xl |
... | @@ -15,3 +15,5 @@ export const Refresh: React.FC<RefreshProps> = ({ refreshRooms }) => { | ... | @@ -15,3 +15,5 @@ export const Refresh: React.FC<RefreshProps> = ({ refreshRooms }) => { |
15 | onClick={() => refreshRooms()}>⟳</button> | 15 | onClick={() => refreshRooms()}>⟳</button> |
16 | ); | 16 | ); |
17 | } | 17 | } |
18 | + | ||
19 | +export default Refresh; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -13,7 +13,7 @@ interface RoomBlockProps { | ... | @@ -13,7 +13,7 @@ interface RoomBlockProps { |
13 | room: Room | 13 | room: Room |
14 | } | 14 | } |
15 | 15 | ||
16 | -export const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => { | 16 | +const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => { |
17 | const history = useHistory(); | 17 | const history = useHistory(); |
18 | const socket = useContext(SocketContext); | 18 | const socket = useContext(SocketContext); |
19 | const location: RoomBlockLocation = useLocation(); | 19 | const location: RoomBlockLocation = useLocation(); |
... | @@ -57,3 +57,5 @@ export const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => { | ... | @@ -57,3 +57,5 @@ export const RoomBlock: React.FC<RoomBlockProps> = ({ room }) => { |
57 | </button> | 57 | </button> |
58 | ); | 58 | ); |
59 | } | 59 | } |
60 | + | ||
61 | +export default RoomBlock; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import React, { useCallback, useContext, useState } from 'react'; | 1 | import React, { useCallback, useContext, useState } from 'react'; |
2 | import { useHistory } from 'react-router'; | 2 | import { useHistory } from 'react-router'; |
3 | -import { Main } from '../components/common/Main'; | 3 | +import Main from '../components/common/Main'; |
4 | import { MessageResponse, MessageType, RawMessage } from '../components/common/types'; | 4 | import { MessageResponse, MessageType, RawMessage } from '../components/common/types'; |
5 | import SocketContext from '../contexts/SocketContext'; | 5 | import SocketContext from '../contexts/SocketContext'; |
6 | 6 | ||
7 | -export const Login: React.FC = () => { | 7 | +const Login: React.FC = () => { |
8 | const history = useHistory(); | 8 | const history = useHistory(); |
9 | const socket = useContext(SocketContext); | 9 | const socket = useContext(SocketContext); |
10 | const [ username, setUsername ] = useState(""); | 10 | const [ username, setUsername ] = useState(""); |
... | @@ -51,3 +51,5 @@ export const Login: React.FC = () => { | ... | @@ -51,3 +51,5 @@ export const Login: React.FC = () => { |
51 | </Main> | 51 | </Main> |
52 | ) | 52 | ) |
53 | } | 53 | } |
54 | + | ||
55 | +export default Login; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import React, { useCallback, useContext, useEffect, useState } from 'react'; | 1 | import React, { useCallback, useContext, useEffect, useState } from 'react'; |
2 | import { useHistory, useLocation } from 'react-router'; | 2 | import { useHistory, useLocation } from 'react-router'; |
3 | -import { Main } from '../components/common/Main'; | 3 | +import Main from '../components/common/Main'; |
4 | import { MessageResponse, MessageType, RawMessage } from '../components/common/types'; | 4 | import { MessageResponse, MessageType, RawMessage } from '../components/common/types'; |
5 | -import { Chat } from '../components/room/Chat'; | 5 | +import Chat from '../components/room/Chat'; |
6 | -import { GameBoard } from '../components/room/GameBoard'; | 6 | +import GameBoard from '../components/room/GameBoard'; |
7 | -import { Ready } from '../components/room/Ready'; | 7 | +import Ready from '../components/room/Ready'; |
8 | -import { RoomInfo } from '../components/room/RoomInfo'; | 8 | +import RoomInfo from '../components/room/RoomInfo'; |
9 | import { RoomData, UpdateRoomUser } from '../components/room/types'; | 9 | import { RoomData, UpdateRoomUser } from '../components/room/types'; |
10 | -import { UserInfo } from '../components/room/UserInfo'; | 10 | +import UserInfo from '../components/room/UserInfo'; |
11 | -import { UserRole } from '../components/room/UserRole'; | 11 | +import UserRole from '../components/room/UserRole'; |
12 | import SocketContext from '../contexts/SocketContext'; | 12 | import SocketContext from '../contexts/SocketContext'; |
13 | 13 | ||
14 | interface RoomLocation { | 14 | interface RoomLocation { |
15 | state: { roomData: RoomData } | 15 | state: { roomData: RoomData } |
16 | } | 16 | } |
17 | 17 | ||
18 | -export const Room: React.FC = () => { | 18 | +const Room: React.FC = () => { |
19 | const history = useHistory(); | 19 | const history = useHistory(); |
20 | const socket = useContext(SocketContext); | 20 | const socket = useContext(SocketContext); |
21 | const location: RoomLocation = useLocation(); | 21 | const location: RoomLocation = useLocation(); |
... | @@ -123,4 +123,6 @@ export const Room: React.FC = () => { | ... | @@ -123,4 +123,6 @@ export const Room: React.FC = () => { |
123 | </div> | 123 | </div> |
124 | </Main> | 124 | </Main> |
125 | ); | 125 | ); |
126 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
126 | +} | ||
127 | + | ||
128 | +export default Room; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import React, { useCallback, useContext, useEffect, useState } from 'react'; | 1 | import React, { useCallback, useContext, useEffect, useState } from 'react'; |
2 | import { useHistory } from 'react-router'; | 2 | import { useHistory } from 'react-router'; |
3 | -import { Main } from '../components/common/Main'; | 3 | +import Main from '../components/common/Main'; |
4 | import { MessageResponse, MessageType, RawMessage } from '../components/common/types'; | 4 | import { MessageResponse, MessageType, RawMessage } from '../components/common/types'; |
5 | -import { Create } from '../components/rooms/Create'; | 5 | +import Create from '../components/rooms/Create'; |
6 | -import { Refresh } from '../components/rooms/Refrsh'; | 6 | +import Refresh from '../components/rooms/Refrsh'; |
7 | -import { RoomBlock } from '../components/rooms/RoomBlock'; | 7 | +import RoomBlock from '../components/rooms/RoomBlock'; |
8 | import { Room } from '../components/rooms/types'; | 8 | import { Room } from '../components/rooms/types'; |
9 | import SocketContext from '../contexts/SocketContext'; | 9 | import SocketContext from '../contexts/SocketContext'; |
10 | 10 | ||
11 | -export const Rooms: React.FC = () => { | 11 | +const Rooms: React.FC = () => { |
12 | const history = useHistory(); | 12 | const history = useHistory(); |
13 | const socket = useContext(SocketContext); | 13 | const socket = useContext(SocketContext); |
14 | const [ rooms, setRooms ] = useState<Room[]>([]); | 14 | const [ rooms, setRooms ] = useState<Room[]>([]); |
... | @@ -42,3 +42,5 @@ export const Rooms: React.FC = () => { | ... | @@ -42,3 +42,5 @@ export const Rooms: React.FC = () => { |
42 | </Main> | 42 | </Main> |
43 | ) | 43 | ) |
44 | } | 44 | } |
45 | + | ||
46 | +export default Rooms; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment