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