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