Add WebSocket connection to client

Changes:
- On successful login, create a barebone WebSocket
- The access token is used for the authentification

GitLab: #49
Change-Id: I9aee9125fb8eb25273b198054909927350177b72
diff --git a/client/src/index.tsx b/client/src/index.tsx
index 968e62b..49ed2ef 100644
--- a/client/src/index.tsx
+++ b/client/src/index.tsx
@@ -24,13 +24,14 @@
 import { StrictMode } from 'react';
 import { createRoot } from 'react-dom/client';
 import { Provider } from 'react-redux';
-import { createBrowserRouter, createRoutesFromElements, Route, RouterProvider } from 'react-router-dom';
+import { createBrowserRouter, createRoutesFromElements, Outlet, Route, RouterProvider } from 'react-router-dom';
 import socketio from 'socket.io-client';
 
 import App from './App';
 import ContactList from './components/ContactList';
 import AuthProvider from './contexts/AuthProvider';
 import { SocketProvider } from './contexts/Socket';
+import WebSocketProvider from './contexts/WebSocketProvider';
 import AccountSelection from './pages/AccountSelection';
 import AccountSettings from './pages/AccountSettings';
 import CallInterface from './pages/CallInterface';
@@ -58,7 +59,15 @@
     <Route path="/" element={<App />}>
       <Route index element={<Welcome />} />
       <Route path="theme" element={<ThemeDemonstrator />} />
-      <Route element={<AuthProvider />}>
+      <Route
+        element={
+          <AuthProvider>
+            <WebSocketProvider>
+              <Outlet />
+            </WebSocketProvider>
+          </AuthProvider>
+        }
+      >
         <Route path="account" element={<JamiMessenger />} />
         <Route path="settings" element={<AccountSettings />} />
         <Route path="contacts" element={<ContactList />} />