Change conversation during call
- Add `CallManagerProvider` to manage calls when the user navigates away from the call interface.
- Delete `NotificationManager`. Move its logic to `CallManagerProvider`.
- Rework routing
- Rework `ConversationProvider` and `useConversationQuery` to remove
unecessary states
GitLab: #172
Change-Id: I4a786a3dd52159680e5712e598d9b831525fb63f
diff --git a/client/src/router.tsx b/client/src/router.tsx
index 7bbddd4..13b5a69 100644
--- a/client/src/router.tsx
+++ b/client/src/router.tsx
@@ -21,15 +21,12 @@
import ContactList from './components/ContactList';
import ConversationView from './components/ConversationView';
import AuthProvider from './contexts/AuthProvider';
-import CallProvider, { CallRole, CallStatus } from './contexts/CallProvider';
+import CallManagerProvider from './contexts/CallManagerProvider';
import ConversationProvider from './contexts/ConversationProvider';
import MessengerProvider from './contexts/MessengerProvider';
-import WebRtcProvider from './contexts/WebRtcProvider';
import WebSocketProvider from './contexts/WebSocketProvider';
import { RouteParams } from './hooks/useUrlParams';
-import NotificationManager from './managers/NotificationManager';
import AccountSettings from './pages/AccountSettings';
-import CallInterface from './pages/CallInterface';
import GeneralSettings from './pages/GeneralSettings';
import Messenger from './pages/Messenger';
import Setup from './pages/Setup';
@@ -39,16 +36,6 @@
export type ConversationRouteParams = RouteParams<{ conversationId?: string }, Record<string, never>>;
-export type CallRouteParams = RouteParams<
- { conversationId?: string },
- Record<string, never>,
- {
- role: CallRole;
- isVideoOn?: boolean;
- callStatus: CallStatus;
- }
->;
-
export const router = createBrowserRouter(
createRoutesFromElements(
<Route path="/" element={<App />} loader={appLoader}>
@@ -60,9 +47,9 @@
element={
<AuthProvider>
<WebSocketProvider>
- <NotificationManager>
+ <CallManagerProvider>
<Outlet />
- </NotificationManager>
+ </CallManagerProvider>
</WebSocketProvider>
</AuthProvider>
}
@@ -81,23 +68,11 @@
element={
<Messenger>
<ConversationProvider>
- <Outlet />
+ <ConversationView />
</ConversationProvider>
</Messenger>
}
- >
- <Route index element={<ConversationView />} />
- <Route
- path="call"
- element={
- <WebRtcProvider>
- <CallProvider>
- <CallInterface />
- </CallProvider>
- </WebRtcProvider>
- }
- />
- </Route>
+ />
</Route>
<Route path="settings-account" element={<AccountSettings />} />
<Route path="settings-general" element={<GeneralSettings />} />