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)}`;
+}