diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 1ddd162..e7d4879 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,6 +1,9 @@ import { FC } from "react"; import { NavLink } from "react-router-dom"; +import { roomListPath } from "modules/room/paths"; +import { userListPath } from "modules/user/paths"; + interface LinkProps { to: string; } @@ -22,8 +25,8 @@ const Header: FC = () => ( Solstice ); diff --git a/src/components/SolsticeApp.tsx b/src/components/SolsticeApp.tsx index 985762c..a581b9e 100644 --- a/src/components/SolsticeApp.tsx +++ b/src/components/SolsticeApp.tsx @@ -1,30 +1,24 @@ import { FC } from "react"; import { useSelector } from "react-redux"; -import { - Switch, - Redirect, - Route, - useLocation, - useRouteMatch, -} from "react-router-dom"; +import { Switch, Redirect, Route, useLocation } from "react-router-dom"; import Header from "components/Header"; import ConnectPage from "containers/ConnectPage"; import Footer from "containers/Footer"; +import { roomListPath } from "modules/room/paths"; import RoomsPane from "modules/room/RoomsPane"; +import { userListPath } from "modules/user/paths"; import UsersPane from "modules/user/UsersPane"; import { selectSocket, SocketState } from "modules/socket/slice"; const MainPane: FC = () => { - const { path } = useRouteMatch(); - return (
- + - + diff --git a/src/modules/room/RoomListEntry.tsx b/src/modules/room/RoomListEntry.tsx index c80f6e2..fcdfc83 100644 --- a/src/modules/room/RoomListEntry.tsx +++ b/src/modules/room/RoomListEntry.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { NavLink } from "react-router-dom"; -import { encode } from "modules/base64"; +import { getRoomDetailsPath } from "modules/room/paths"; import { RoomMembership, RoomState } from "modules/room/slice"; interface Props { @@ -21,7 +21,7 @@ const RoomListEntry: FC = ({ name, data }) => { return ( diff --git a/src/modules/room/paths.ts b/src/modules/room/paths.ts new file mode 100644 index 0000000..db81b5f --- /dev/null +++ b/src/modules/room/paths.ts @@ -0,0 +1,7 @@ +import { encode } from "modules/base64"; + +export const roomListPath = "/rooms"; + +export function getRoomDetailsPath(roomName: string): string { + return `${roomListPath}/${encode(roomName)}`; +} diff --git a/src/modules/user/UserListEntry.tsx b/src/modules/user/UserListEntry.tsx index 11e831f..6892e52 100644 --- a/src/modules/user/UserListEntry.tsx +++ b/src/modules/user/UserListEntry.tsx @@ -1,18 +1,16 @@ import { FC } from "react"; import { NavLink } from "react-router-dom"; -import { encode } from "modules/base64"; +import { getUserDetailsPath } from "modules/user/paths"; interface Props { name: string; } const UserListEntry: FC = ({ name }) => { - const path = `/users/${encode(name)}`; - return ( diff --git a/src/modules/user/paths.ts b/src/modules/user/paths.ts new file mode 100644 index 0000000..6b1d688 --- /dev/null +++ b/src/modules/user/paths.ts @@ -0,0 +1,7 @@ +import { encode } from "modules/base64"; + +export const userListPath = "/users"; + +export function getUserDetailsPath(userName: string): string { + return `${userListPath}/${encode(userName)}`; +}