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 />} />