From e13bf38b35de3a36446c8845590ba6eb355ce2da Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Thu, 29 Jul 2021 19:59:05 -0400 Subject: [PATCH] Move components to room module, use absolute imports. --- src/components/RoomListHeader.js | 20 ------------------- src/components/SolsticeApp.tsx | 4 ++-- src/{components => modules/room}/Room.tsx | 4 ++-- src/{components => modules/room}/RoomChat.tsx | 8 ++++---- .../room}/RoomChatForm.tsx | 2 +- .../room}/RoomChatHeader.tsx | 2 +- .../room}/RoomChatMessageList.tsx | 2 +- src/{components => modules/room}/RoomList.tsx | 6 +++--- .../room}/RoomUserList.js | 8 ++++++-- .../room}/RoomsPane.tsx | 10 +++++----- src/modules/room/message.ts | 9 ++++++--- src/modules/room/slice.ts | 2 +- tsconfig.json | 3 ++- 13 files changed, 34 insertions(+), 46 deletions(-) delete mode 100644 src/components/RoomListHeader.js rename src/{components => modules/room}/Room.tsx (84%) rename src/{components => modules/room}/RoomChat.tsx (76%) rename src/{components => modules/room}/RoomChatForm.tsx (95%) rename src/{components => modules/room}/RoomChatHeader.tsx (95%) rename src/{components => modules/room}/RoomChatMessageList.tsx (94%) rename src/{components => modules/room}/RoomList.tsx (69%) rename src/{components => modules/room}/RoomUserList.js (70%) rename src/{containers => modules/room}/RoomsPane.tsx (81%) diff --git a/src/components/RoomListHeader.js b/src/components/RoomListHeader.js deleted file mode 100644 index 9826c2a..0000000 --- a/src/components/RoomListHeader.js +++ /dev/null @@ -1,20 +0,0 @@ -import React, { PropTypes } from "react"; - -const RoomListHeader = ({ refresh }) => { - return ( -
-
-

Room List

-
-
- -
-
- ); -}; - -RoomListHeader.propTypes = { - refresh: PropTypes.func.isRequired, -}; - -export default RoomListHeader; diff --git a/src/components/SolsticeApp.tsx b/src/components/SolsticeApp.tsx index 91cd373..fc27a82 100644 --- a/src/components/SolsticeApp.tsx +++ b/src/components/SolsticeApp.tsx @@ -8,11 +8,11 @@ import { useRouteMatch, } from "react-router-dom"; -import { selectSocket, SocketState } from "../modules/websocket/slice"; import Header from "./Header"; import ConnectPage from "../containers/ConnectPage"; import Footer from "../containers/Footer"; -import RoomsPane from "../containers/RoomsPane"; +import RoomsPane from "../modules/room/RoomsPane"; +import { selectSocket, SocketState } from "../modules/websocket/slice"; const MainPane: FC = () => { const { path } = useRouteMatch(); diff --git a/src/components/Room.tsx b/src/modules/room/Room.tsx similarity index 84% rename from src/components/Room.tsx rename to src/modules/room/Room.tsx index e9f2882..6082c51 100644 --- a/src/components/Room.tsx +++ b/src/modules/room/Room.tsx @@ -1,8 +1,8 @@ import { FC } from "react"; import { NavLink } from "react-router-dom"; -import { encode } from "../modules/base64"; -import { RoomMembership, Room as RoomState } from "../modules/room/slice"; +import { encode } from "modules/base64"; +import { RoomMembership, Room as RoomState } from "modules/room/slice"; interface Props { name: string; diff --git a/src/components/RoomChat.tsx b/src/modules/room/RoomChat.tsx similarity index 76% rename from src/components/RoomChat.tsx rename to src/modules/room/RoomChat.tsx index 7c93555..6de6d44 100644 --- a/src/components/RoomChat.tsx +++ b/src/modules/room/RoomChat.tsx @@ -1,10 +1,10 @@ import { FC, useEffect } from "react"; import { useDispatch } from "react-redux"; -import { Room, RoomMembership, roomSetMembership } from "../modules/room/slice"; -import RoomChatForm from "../components/RoomChatForm"; -import RoomChatHeader from "../components/RoomChatHeader"; -import RoomChatMessageList from "../components/RoomChatMessageList"; +import { Room, RoomMembership, roomSetMembership } from "modules/room/slice"; +import RoomChatForm from "modules/room/RoomChatForm"; +import RoomChatHeader from "modules/room/RoomChatHeader"; +import RoomChatMessageList from "modules/room/RoomChatMessageList"; interface Props { loginUserName: string; diff --git a/src/components/RoomChatForm.tsx b/src/modules/room/RoomChatForm.tsx similarity index 95% rename from src/components/RoomChatForm.tsx rename to src/modules/room/RoomChatForm.tsx index 3e518ce..d88e49d 100644 --- a/src/components/RoomChatForm.tsx +++ b/src/modules/room/RoomChatForm.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { Form, Field } from "react-final-form"; import { useDispatch } from "react-redux"; -import { roomMessage } from "../modules/room/slice"; +import { roomMessage } from "modules/room/slice"; interface Props { roomName: string; diff --git a/src/components/RoomChatHeader.tsx b/src/modules/room/RoomChatHeader.tsx similarity index 95% rename from src/components/RoomChatHeader.tsx rename to src/modules/room/RoomChatHeader.tsx index f73c180..c80f2b1 100644 --- a/src/components/RoomChatHeader.tsx +++ b/src/modules/room/RoomChatHeader.tsx @@ -2,7 +2,7 @@ import { FC, ReactEventHandler } from "react"; import { useDispatch } from "react-redux"; import { useHistory } from "react-router"; -import { Room, RoomMembership, roomSetMembership } from "../modules/room/slice"; +import { Room, RoomMembership, roomSetMembership } from "modules/room/slice"; interface InnerProps { title: string; diff --git a/src/components/RoomChatMessageList.tsx b/src/modules/room/RoomChatMessageList.tsx similarity index 94% rename from src/components/RoomChatMessageList.tsx rename to src/modules/room/RoomChatMessageList.tsx index 6c96a44..672c1d2 100644 --- a/src/components/RoomChatMessageList.tsx +++ b/src/modules/room/RoomChatMessageList.tsx @@ -1,6 +1,6 @@ import { FC } from "react"; -import { RoomMessage } from "../modules/room/slice"; +import { RoomMessage } from "modules/room/slice"; interface Props { loginUserName: string; diff --git a/src/components/RoomList.tsx b/src/modules/room/RoomList.tsx similarity index 69% rename from src/components/RoomList.tsx rename to src/modules/room/RoomList.tsx index eb7a4e1..e58bdec 100644 --- a/src/components/RoomList.tsx +++ b/src/modules/room/RoomList.tsx @@ -1,9 +1,9 @@ import { FC } from "react"; import { useDispatch } from "react-redux"; -import RoomComponent from "./Room"; -import SearchableList from "./SearchableList"; -import { RoomSliceState, roomGetAll } from "../modules/room/slice"; +import SearchableList from "components/SearchableList"; +import RoomComponent from "modules/room/Room"; +import { RoomSliceState, roomGetAll } from "modules/room/slice"; const SearchableRoomList = SearchableList(RoomComponent); diff --git a/src/components/RoomUserList.js b/src/modules/room/RoomUserList.js similarity index 70% rename from src/components/RoomUserList.js rename to src/modules/room/RoomUserList.js index d355647..219c8c4 100644 --- a/src/components/RoomUserList.js +++ b/src/modules/room/RoomUserList.js @@ -1,6 +1,10 @@ -import React, { PropTypes } from "react"; +import { FC } from "react"; -const RoomUserList = ({ users }) => { +interface Props { + users: string[]; +} + +const RoomUserList: FC = ({ users }) => { // Append all users const children = []; let i = 0; diff --git a/src/containers/RoomsPane.tsx b/src/modules/room/RoomsPane.tsx similarity index 81% rename from src/containers/RoomsPane.tsx rename to src/modules/room/RoomsPane.tsx index c8f6915..1d1083f 100644 --- a/src/containers/RoomsPane.tsx +++ b/src/modules/room/RoomsPane.tsx @@ -3,11 +3,11 @@ import { useSelector } from "react-redux"; import { useParams, useRouteMatch } from "react-router"; import { Switch, Route } from "react-router-dom"; -import RoomChat from "../components/RoomChat"; -import RoomList from "../components/RoomList"; -import { decode } from "../modules/base64"; -import { selectLogin } from "../modules/login/slice"; -import { RoomMap, selectAllRooms } from "../modules/room/slice"; +import { decode } from "modules/base64"; +import { selectLogin } from "modules/login/slice"; +import { RoomMap, selectAllRooms } from "modules/room/slice"; +import RoomChat from "modules/room/RoomChat"; +import RoomList from "modules/room/RoomList"; interface ChatProps { loginUserName: string; diff --git a/src/modules/room/message.ts b/src/modules/room/message.ts index 73e6ff8..8e3017e 100644 --- a/src/modules/room/message.ts +++ b/src/modules/room/message.ts @@ -1,6 +1,9 @@ -import { AppDispatch } from "../../app/store"; -import { roomMessage, roomGetAll, roomSetAll } from "./slice"; -import { SocketMessage, SocketMessageMiddleware } from "../websocket/message"; +import { AppDispatch } from "app/store"; +import { roomMessage, roomGetAll, roomSetAll } from "modules/room/slice"; +import { + SocketMessage, + SocketMessageMiddleware, +} from "modules/websocket/message"; function roomListRequest(): SocketMessage { return { diff --git a/src/modules/room/slice.ts b/src/modules/room/slice.ts index b59c95e..6187574 100644 --- a/src/modules/room/slice.ts +++ b/src/modules/room/slice.ts @@ -1,6 +1,6 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit"; -import { RootState } from "../../app/store"; +import { RootState } from "app/store"; export enum RoomMembership { Joining, diff --git a/tsconfig.json b/tsconfig.json index 9d379a3..5452a6d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,8 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx" + "jsx": "react-jsx", + "baseUrl": "src" }, "include": ["src"] }