add redux setup and typescript configuration

Change-Id: Ibe00e3e969d539d3898e412a0093ee2076bec857
diff --git a/client/webpack.config.js b/client/webpack.config.js
index 022b823..7da8fb5 100644
--- a/client/webpack.config.js
+++ b/client/webpack.config.js
@@ -36,44 +36,62 @@
 export default {
   entry,
   output: {
-    path: resolve(__dirname, 'dist'),
-    filename: 'bundle.js',
-    publicPath: '/'
+    path: resolve(__dirname, "dist"),
+    filename: "bundle.js",
+    publicPath: "/",
   },
   devtool,
   mode,
   module: {
     rules: [
       {
-        test: /\.jsx?/,
+        // test: /\.jsx?/,
+        test: /\.(js|jsx|ts|tsx)?$/,
         resolve: {
-          fullySpecified: false
+          fullySpecified: false,
         },
         exclude: /node_modules/,
         use: {
-          loader: 'babel-loader',
+          loader: "babel-loader",
           options: {
             plugins: babelLoaderPlugins,
             presets: [
-              ['@babel/preset-env', {
-                useBuiltIns: 'entry',
-                corejs: { version: '3.10', proposals: true },
-              }],
-              ['@babel/preset-react', {
-                runtime: 'automatic'
-              }]]
-          }
-        }
+              [
+                "@babel/preset-env",
+                {
+                  useBuiltIns: "entry",
+                  corejs: { version: "3.10", proposals: true },
+                },
+              ],
+              [
+                "@babel/preset-react",
+                {
+                  runtime: "automatic",
+                },
+              ],
+            ],
+          },
+        },
       },
       {
         test: /\.s[ac]ss$/i,
-        use: ['style-loader', 'css-loader', 'sass-loader'],
+        use: ["style-loader", "css-loader", "sass-loader"],
       },
       {
         test: /\.svg$/,
-        use: ['@svgr/webpack']
-      }
-    ]
+        use: ["@svgr/webpack"],
+      },
+      {
+        // test: /\.tsx?$/,
+        test: /\.(js|jsx|ts|tsx)?$/,
+        exclude: /node_modules/,
+        loader: "ts-loader",
+      },
+    ],
   },
-  plugins
-}
\ No newline at end of file
+  resolve: {
+    modules: ["node_modules", resolve(__dirname)],
+    extensions: [".ts", ".tsx", ".js", ".jsx"],
+  },
+  plugins,
+};
\ No newline at end of file