add redux setup and typescript configuration

Change-Id: Ibe00e3e969d539d3898e412a0093ee2076bec857
diff --git a/client/src/App.js b/client/src/App.js
index b685936..d0043df 100644
--- a/client/src/App.js
+++ b/client/src/App.js
@@ -19,6 +19,9 @@
 import WelcomeAnimation from './components/welcome'
 import defaultTheme from './themes/default'
 
+// import { useSelector, useDispatch } from 'react-redux'
+// import { useAppSelector, useAppDispatch } from '../redux/hooks'
+
 const Home = (props) => {
   console.log(`home ${props}`)
 
@@ -26,48 +29,65 @@
 }
 
 const App = (props) => {
-    const [state, setState] = useState({
-      loaded: false,
-      auth: authManager.getState()
-    })
-    const [displayWelcome, setDisplayWelcome] = useState(true)
+  // const count = useSelector(state => state.counter.value)
+  // const dispatch = useDispatch();
+  // const count = useAppSelector((state) => state.counter.value);
+  // const dispatch = useAppDispatch();
 
-    useEffect(() => {
-      authManager.init(auth => {
-        setState({ loaded: false, auth })
-      })
-      return () => authManager.deinit()
-    }, []);
+  const [state, setState] = useState({
+    loaded: false,
+    auth: authManager.getState(),
+  });
+  const [displayWelcome, setDisplayWelcome] = useState(true);
 
-    console.log("App render")
-    if (displayWelcome) {
-      return <WelcomeAnimation showSetup={!state.auth.setupComplete} onComplete={() => setDisplayWelcome(false)} />
-    } else if (!state.auth.setupComplete) {
-      return <Routes>
-          <Route path="/setup" element={<ServerSetup />} />
-          <Route path="/" element={<Navigate to="/setup" replace />} />
-          <Route index path="*" element={<Navigate to="/setup" replace />} />
-        </Routes>
-    }
+  useEffect(() => {
+    authManager.init((auth) => {
+      setState({ loaded: false, auth });
+    });
+    return () => authManager.deinit();
+  }, []);
 
-    return <ThemeProvider theme={defaultTheme}>
-    <Routes>
-      <Route path="/account">
-        <Route index element={<AccountSelection />} />
-        <Route path=":accountId">
-          <Route index path="*" element={<JamiMessenger />} />
-          <Route path="settings" element={<AccountSettings />} />
+  console.log("App render");
+
+  if (displayWelcome) {
+    return (
+      <WelcomeAnimation
+        showSetup={!state.auth.setupComplete}
+        onComplete={() => setDisplayWelcome(false)}
+      />
+    );
+  } else if (!state.auth.setupComplete) {
+    return (
+      <Routes>
+        <Route path="/setup" element={<ServerSetup />} />
+        <Route path="/" element={<Navigate to="/setup" replace />} />
+        <Route index path="*" element={<Navigate to="/setup" replace />} />
+      </Routes>
+    );
+  }
+
+  return (
+    <ThemeProvider theme={defaultTheme}>
+      <Routes>
+        <Route path="/account">
+          <Route index element={<AccountSelection />} />
+          <Route path=":accountId">
+            <Route index path="*" element={<JamiMessenger />} />
+            <Route path="settings" element={<AccountSettings />} />
+          </Route>
         </Route>
-      </Route>
-      <Route path="/newAccount" element={<AccountCreationDialog />}>
-        <Route path="jami" element={<JamiAccountDialog />} />
-      </Route>
-      <Route path="/setup" element={<ServerSetup />} />
-      <Route path="/" index element={<Home />} />
-      <Route path="*" element={<NotFoundPage />} />
-    </Routes>
-    {!state.auth.authenticated && <SignInPage key="signin" open={!state.auth.authenticated}/>}
+        <Route path="/newAccount" element={<AccountCreationDialog />}>
+          <Route path="jami" element={<JamiAccountDialog />} />
+        </Route>
+        <Route path="/setup" element={<ServerSetup />} />
+        <Route path="/" index element={<Home />} />
+        <Route path="*" element={<NotFoundPage />} />
+      </Routes>
+      {!state.auth.authenticated && (
+        <SignInPage key="signin" open={!state.auth.authenticated} />
+      )}
     </ThemeProvider>
-}
+  );
+};
 
 export default App
diff --git a/client/src/index.js b/client/src/index.js
index e607b8a..27b5591 100644
--- a/client/src/index.js
+++ b/client/src/index.js
@@ -1,28 +1,37 @@
-'use strict'
-import React from 'react'
-import ReactDOM from 'react-dom'
-import { BrowserRouter as Router } from 'react-router-dom'
-import App from './App.js'
-import './index.scss'
+"use strict";
+import React from "react";
+import ReactDOM from "react-dom";
+import { BrowserRouter as Router } from "react-router-dom";
+import App from "./App.js";
+import "./index.scss";
 
-const rootEl = document.getElementById('root')
+import { store } from "../redux/store";
+import { Provider } from "react-redux";
+//import { CssBaseline } from '@mui/material'
 
-const render = Component =>
-ReactDOM.render(
-  <React.StrictMode>
-    <Router>
-    <Component />
-    </Router>
-  </React.StrictMode>,
-  rootEl
-)
+//import * as serviceWorker from './serviceWorker'
+const rootEl = document.getElementById("root");
+var exports = {};
+
+const render = (Component) =>
+  ReactDOM.render(
+    <Provider store={store}>
+      <React.StrictMode>
+        <Router>
+          <Component />
+        </Router>
+      </React.StrictMode>
+    </Provider>,
+    rootEl
+  );
 
 render(App)
 
-if (import.meta.webpackHot) import.meta.webpackHot.accept('./App', () => {
-  try {
-    render(App)
-  } catch (e) {
-    location.reload()
-  }
-})
\ No newline at end of file
+if (import.meta.webpackHot)
+  import.meta.webpackHot.accept("./App", () => {
+    try {
+      render(App);
+    } catch (e) {
+      location.reload();
+    }
+  });