diff --git a/jams-react-client/src/api.js b/jams-react-client/src/api.tsx
similarity index 100%
rename from jams-react-client/src/api.js
rename to jams-react-client/src/api.tsx
diff --git a/jams-react-client/src/auth.js b/jams-react-client/src/auth.tsx
similarity index 99%
rename from jams-react-client/src/auth.js
rename to jams-react-client/src/auth.tsx
index ec3b15a68498904029129d85a951e6f9d46cbb74..947ee5047464745726f851bdd9b2b0847e9f5936 100644
--- a/jams-react-client/src/auth.js
+++ b/jams-react-client/src/auth.tsx
@@ -1,4 +1,4 @@
-import configApiCall from "api.js";
+import configApiCall from "api";
 import axios from "axios";
 
 import {
diff --git a/jams-react-client/src/components/CaSetup/CaSetup.js b/jams-react-client/src/components/CaSetup/CaSetup.tsx
similarity index 99%
rename from jams-react-client/src/components/CaSetup/CaSetup.js
rename to jams-react-client/src/components/CaSetup/CaSetup.tsx
index 88497932ecf6c6f9d660fea236e3b96fd50dbe07..361c1ea4c30b5f05c65c3540fd766bc2433121e7 100644
--- a/jams-react-client/src/components/CaSetup/CaSetup.js
+++ b/jams-react-client/src/components/CaSetup/CaSetup.tsx
@@ -6,7 +6,7 @@ import Button from "@mui/material/Button";
 import TextField from "@mui/material/TextField";
 import { makeStyles } from "@mui/styles";
 
-import CountrySelect from "components/CountrySelect/CountrySelect.js";
+import CountrySelect from "components/CountrySelect/CountrySelect";
 
 import auth from "../../auth";
 import axios from "axios";
diff --git a/jams-react-client/src/components/Card/Card.js b/jams-react-client/src/components/Card/Card.tsx
similarity index 98%
rename from jams-react-client/src/components/Card/Card.js
rename to jams-react-client/src/components/Card/Card.tsx
index acecb9ace7c4a35434271e976e5ef886e751dc6b..e0f03ac88fce8241c831e697bda1283120fb500f 100644
--- a/jams-react-client/src/components/Card/Card.js
+++ b/jams-react-client/src/components/Card/Card.tsx
@@ -8,7 +8,7 @@ import { makeStyles } from "@mui/styles";
 // @mui/icons-material
 
 // core components
-import styles from "assets/jss/material-dashboard-react/components/cardStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/cardStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/Card/CardAvatar.js b/jams-react-client/src/components/Card/CardAvatar.tsx
similarity index 98%
rename from jams-react-client/src/components/Card/CardAvatar.js
rename to jams-react-client/src/components/Card/CardAvatar.tsx
index 4cff1dc8ab664149ad65a97b2d330deb8942e690..cf5a72b0cb276caf917c756f59d59f4d9f269fa6 100644
--- a/jams-react-client/src/components/Card/CardAvatar.js
+++ b/jams-react-client/src/components/Card/CardAvatar.tsx
@@ -8,7 +8,7 @@ import { makeStyles } from "@mui/styles";
 // @mui/icons-material
 // core components
 
-import styles from "assets/jss/material-dashboard-react/components/cardAvatarStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/cardAvatarStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/Card/CardBody.js b/jams-react-client/src/components/Card/CardBody.tsx
similarity index 97%
rename from jams-react-client/src/components/Card/CardBody.js
rename to jams-react-client/src/components/Card/CardBody.tsx
index 93e9ee995156d73c6a67e59c036ef1aff64a23e2..2ad5ecdde3a811fbeb3c4f67debe55c844327c97 100644
--- a/jams-react-client/src/components/Card/CardBody.js
+++ b/jams-react-client/src/components/Card/CardBody.tsx
@@ -8,7 +8,7 @@ import { makeStyles } from "@mui/styles";
 // @mui/icons-material
 
 // core components
-import styles from "assets/jss/material-dashboard-react/components/cardBodyStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/cardBodyStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/Card/CardFooter.js b/jams-react-client/src/components/Card/CardFooter.tsx
similarity index 97%
rename from jams-react-client/src/components/Card/CardFooter.js
rename to jams-react-client/src/components/Card/CardFooter.tsx
index 7cc2780e0080e800e9e617172551707370aaffa6..31f09f0e29de9056a497e5873f95771f53b897a4 100644
--- a/jams-react-client/src/components/Card/CardFooter.js
+++ b/jams-react-client/src/components/Card/CardFooter.tsx
@@ -8,7 +8,7 @@ import { makeStyles } from "@mui/styles";
 // @mui/icons-material
 
 // core components
-import styles from "assets/jss/material-dashboard-react/components/cardFooterStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/cardFooterStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/Card/CardHeader.js b/jams-react-client/src/components/Card/CardHeader.tsx
similarity index 98%
rename from jams-react-client/src/components/Card/CardHeader.js
rename to jams-react-client/src/components/Card/CardHeader.tsx
index 88a9f1e1136819f8424e9be9de102699250bd0bd..594c3c38daae22cc0aefc965d3264ff26d10aa8e 100644
--- a/jams-react-client/src/components/Card/CardHeader.js
+++ b/jams-react-client/src/components/Card/CardHeader.tsx
@@ -8,7 +8,7 @@ import { makeStyles } from "@mui/styles";
 // @mui/icons-material
 
 // core components
-import styles from "assets/jss/material-dashboard-react/components/cardHeaderStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/cardHeaderStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/Card/CardIcon.js b/jams-react-client/src/components/Card/CardIcon.tsx
similarity index 97%
rename from jams-react-client/src/components/Card/CardIcon.js
rename to jams-react-client/src/components/Card/CardIcon.tsx
index 9da0bc7a77b8a43f958103eb4aeae1fc4f1d887b..4daf5cd84e85cc8ce3a22b2d562b916d55322727 100644
--- a/jams-react-client/src/components/Card/CardIcon.js
+++ b/jams-react-client/src/components/Card/CardIcon.tsx
@@ -8,7 +8,7 @@ import { makeStyles } from "@mui/styles";
 // @mui/icons-material
 
 // core components
-import styles from "assets/jss/material-dashboard-react/components/cardIconStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/cardIconStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/CountrySelect/CountrySelect.js b/jams-react-client/src/components/CountrySelect/CountrySelect.tsx
similarity index 100%
rename from jams-react-client/src/components/CountrySelect/CountrySelect.js
rename to jams-react-client/src/components/CountrySelect/CountrySelect.tsx
diff --git a/jams-react-client/src/components/CreateAdmin/CreateAdmin.js b/jams-react-client/src/components/CreateAdmin/CreateAdmin.tsx
similarity index 100%
rename from jams-react-client/src/components/CreateAdmin/CreateAdmin.js
rename to jams-react-client/src/components/CreateAdmin/CreateAdmin.tsx
diff --git a/jams-react-client/src/components/CustomButtons/Button.js b/jams-react-client/src/components/CustomButtons/Button.tsx
similarity index 98%
rename from jams-react-client/src/components/CustomButtons/Button.js
rename to jams-react-client/src/components/CustomButtons/Button.tsx
index 3ce0082f58ccd3bdb56baf3af2bff5782865f6bb..096a7150d3d0860187919f287264f7c57e9be656 100644
--- a/jams-react-client/src/components/CustomButtons/Button.js
+++ b/jams-react-client/src/components/CustomButtons/Button.tsx
@@ -8,7 +8,7 @@ import PropTypes from "prop-types";
 import { makeStyles } from "@mui/styles";
 import Button from "@mui/material/Button";
 
-import styles from "assets/jss/material-dashboard-react/components/buttonStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/buttonStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/CustomImgDropZone/CustomImgDropZone.js b/jams-react-client/src/components/CustomImgDropZone/CustomImgDropZone.tsx
similarity index 100%
rename from jams-react-client/src/components/CustomImgDropZone/CustomImgDropZone.js
rename to jams-react-client/src/components/CustomImgDropZone/CustomImgDropZone.tsx
diff --git a/jams-react-client/src/components/CustomInput/CustomInput.js b/jams-react-client/src/components/CustomInput/CustomInput.tsx
similarity index 98%
rename from jams-react-client/src/components/CustomInput/CustomInput.js
rename to jams-react-client/src/components/CustomInput/CustomInput.tsx
index 2b20d1f21f08cb4efc7be2e6ac2146f422cec6a2..bcf20d1854b0a4839d4c06ecaa7194b9feb7ecae 100644
--- a/jams-react-client/src/components/CustomInput/CustomInput.js
+++ b/jams-react-client/src/components/CustomInput/CustomInput.tsx
@@ -10,7 +10,7 @@ import Input from "@mui/material/Input";
 import Clear from "@mui/icons-material/Clear";
 import Check from "@mui/icons-material/Check";
 // core components
-import styles from "assets/jss/material-dashboard-react/components/customInputStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/customInputStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/CustomPopupState/CustomPopupState.js b/jams-react-client/src/components/CustomPopupState/CustomPopupState.tsx
similarity index 100%
rename from jams-react-client/src/components/CustomPopupState/CustomPopupState.js
rename to jams-react-client/src/components/CustomPopupState/CustomPopupState.tsx
diff --git a/jams-react-client/src/components/CustomUiPreview/CustomUiPreview.js b/jams-react-client/src/components/CustomUiPreview/CustomUiPreview.tsx
similarity index 100%
rename from jams-react-client/src/components/CustomUiPreview/CustomUiPreview.js
rename to jams-react-client/src/components/CustomUiPreview/CustomUiPreview.tsx
diff --git a/jams-react-client/src/components/CustomUiPreview/JamiIdCard.js b/jams-react-client/src/components/CustomUiPreview/JamiIdCard.tsx
similarity index 100%
rename from jams-react-client/src/components/CustomUiPreview/JamiIdCard.js
rename to jams-react-client/src/components/CustomUiPreview/JamiIdCard.tsx
diff --git a/jams-react-client/src/components/CustomUiPreview/TipBox.js b/jams-react-client/src/components/CustomUiPreview/TipBox.tsx
similarity index 100%
rename from jams-react-client/src/components/CustomUiPreview/TipBox.js
rename to jams-react-client/src/components/CustomUiPreview/TipBox.tsx
diff --git a/jams-react-client/src/components/CustomUiPreview/luma.js b/jams-react-client/src/components/CustomUiPreview/luma.tsx
similarity index 100%
rename from jams-react-client/src/components/CustomUiPreview/luma.js
rename to jams-react-client/src/components/CustomUiPreview/luma.tsx
diff --git a/jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.js b/jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.tsx
similarity index 100%
rename from jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.js
rename to jams-react-client/src/components/CustomizedSteppers/CustomizedSteppers.tsx
diff --git a/jams-react-client/src/components/Devices/Devices.js b/jams-react-client/src/components/Devices/Devices.tsx
similarity index 98%
rename from jams-react-client/src/components/Devices/Devices.js
rename to jams-react-client/src/components/Devices/Devices.tsx
index 381d5eb21ffcaac61eda0f82781679c37cb4acb6..535aad00a40cd8b24f0914bb518bb0e546fb5779 100755
--- a/jams-react-client/src/components/Devices/Devices.js
+++ b/jams-react-client/src/components/Devices/Devices.tsx
@@ -7,7 +7,7 @@ import { Formik, Field } from "formik";
 import { makeStyles } from "@mui/styles";
 import Tooltip from "@mui/material/Tooltip";
 import IconButton from "@mui/material/IconButton";
-import Button from "components/CustomButtons/Button.js";
+import Button from "components/CustomButtons/Button";
 import Table from "@mui/material/Table";
 import TableHead from "@mui/material/TableHead";
 import TableRow from "@mui/material/TableRow";
@@ -24,9 +24,9 @@ import TextField from "@mui/material/TextField";
 import Edit from "@mui/icons-material/Edit";
 import Close from "@mui/icons-material/Close";
 // core components
-import styles from "assets/jss/material-dashboard-react/components/devicesStyle.js";
-import auth from "auth.js";
-import configApiCall from "api.js";
+import styles from "assets/jss/material-dashboard-react/components/devicesStyle";
+import auth from "auth";
+import configApiCall from "api";
 import {
   api_path_delete_admin_device_revoke,
   api_path_delete_auth_device_revoke,
diff --git a/jams-react-client/src/components/Drawer/Drawer.js b/jams-react-client/src/components/Drawer/Drawer.tsx
similarity index 98%
rename from jams-react-client/src/components/Drawer/Drawer.js
rename to jams-react-client/src/components/Drawer/Drawer.tsx
index 3a81608b62ca34f827f7d35a0067d1d66500c8c8..19015582e96951330b5011d6e2c0d17e97244b14 100644
--- a/jams-react-client/src/components/Drawer/Drawer.js
+++ b/jams-react-client/src/components/Drawer/Drawer.tsx
@@ -1,7 +1,7 @@
 import React, { useCallback } from "react";
 import clsx from "clsx";
 import { makeStyles } from "@mui/styles";
-import CustomInput from "components/CustomInput/CustomInput.js";
+import CustomInput from "components/CustomInput/CustomInput";
 import Drawer from "@mui/material/Drawer";
 import List from "@mui/material/List";
 import Divider from "@mui/material/Divider";
diff --git a/jams-react-client/src/components/Footer/Footer.js b/jams-react-client/src/components/Footer/Footer.tsx
similarity index 97%
rename from jams-react-client/src/components/Footer/Footer.js
rename to jams-react-client/src/components/Footer/Footer.tsx
index 1f54292dc051593cd8a5e78dd664956612d04408..2586f39059c7bd186fe47fd79e06593c378250ee 100755
--- a/jams-react-client/src/components/Footer/Footer.js
+++ b/jams-react-client/src/components/Footer/Footer.tsx
@@ -2,7 +2,7 @@ import React from "react";
 // @mui/material components
 import { makeStyles } from "@mui/styles";
 // core components
-import styles from "assets/jss/material-dashboard-react/components/footerStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/footerStyle";
 
 const pjson = require("../../../package.json");
 
diff --git a/jams-react-client/src/components/FormikField/FormikField.js b/jams-react-client/src/components/FormikField/FormikField.tsx
similarity index 100%
rename from jams-react-client/src/components/FormikField/FormikField.js
rename to jams-react-client/src/components/FormikField/FormikField.tsx
diff --git a/jams-react-client/src/components/Grid/GridContainer.js b/jams-react-client/src/components/Grid/GridContainer.tsx
similarity index 100%
rename from jams-react-client/src/components/Grid/GridContainer.js
rename to jams-react-client/src/components/Grid/GridContainer.tsx
diff --git a/jams-react-client/src/components/Grid/GridItem.js b/jams-react-client/src/components/Grid/GridItem.tsx
similarity index 100%
rename from jams-react-client/src/components/Grid/GridItem.js
rename to jams-react-client/src/components/Grid/GridItem.tsx
diff --git a/jams-react-client/src/components/IdentityManagement/AdStorageForm.js b/jams-react-client/src/components/IdentityManagement/AdStorageForm.tsx
similarity index 100%
rename from jams-react-client/src/components/IdentityManagement/AdStorageForm.js
rename to jams-react-client/src/components/IdentityManagement/AdStorageForm.tsx
diff --git a/jams-react-client/src/components/IdentityManagement/IdentityManagement.js b/jams-react-client/src/components/IdentityManagement/IdentityManagement.tsx
similarity index 100%
rename from jams-react-client/src/components/IdentityManagement/IdentityManagement.js
rename to jams-react-client/src/components/IdentityManagement/IdentityManagement.tsx
diff --git a/jams-react-client/src/components/IdentityManagement/LdapStorageForm.js b/jams-react-client/src/components/IdentityManagement/LdapStorageForm.tsx
similarity index 100%
rename from jams-react-client/src/components/IdentityManagement/LdapStorageForm.js
rename to jams-react-client/src/components/IdentityManagement/LdapStorageForm.tsx
diff --git a/jams-react-client/src/components/IdentityManagement/LocalStorageForm.js b/jams-react-client/src/components/IdentityManagement/LocalStorageForm.tsx
similarity index 100%
rename from jams-react-client/src/components/IdentityManagement/LocalStorageForm.js
rename to jams-react-client/src/components/IdentityManagement/LocalStorageForm.tsx
diff --git a/jams-react-client/src/components/LanguagePicker/LanguagePicker.js b/jams-react-client/src/components/LanguagePicker/LanguagePicker.tsx
similarity index 100%
rename from jams-react-client/src/components/LanguagePicker/LanguagePicker.js
rename to jams-react-client/src/components/LanguagePicker/LanguagePicker.tsx
diff --git a/jams-react-client/src/components/Navbars/Navbar.js b/jams-react-client/src/components/Navbars/Navbar.tsx
similarity index 95%
rename from jams-react-client/src/components/Navbars/Navbar.js
rename to jams-react-client/src/components/Navbars/Navbar.tsx
index aacd9e71ee2cae5e8e2bc80f5727e85885f9582e..2d8499261b1184b96a9ddeccfedaf0aadded4756 100755
--- a/jams-react-client/src/components/Navbars/Navbar.js
+++ b/jams-react-client/src/components/Navbars/Navbar.tsx
@@ -10,9 +10,9 @@ import Hidden from "@mui/material/Hidden";
 // @mui/icons-material
 import Menu from "@mui/icons-material/Menu";
 // core components
-import Button from "components/CustomButtons/Button.js";
+import Button from "components/CustomButtons/Button";
 
-import styles from "assets/jss/material-dashboard-react/components/headerStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/headerStyle";
 
 const useStyles = makeStyles(styles);
 
diff --git a/jams-react-client/src/components/PasswordDialog/PasswordDialog.js b/jams-react-client/src/components/PasswordDialog/PasswordDialog.tsx
similarity index 98%
rename from jams-react-client/src/components/PasswordDialog/PasswordDialog.js
rename to jams-react-client/src/components/PasswordDialog/PasswordDialog.tsx
index 5b588f6986eda4af31cb90c05f3257d8842a0ddc..0a49a25c7ec26c15d0b7b5b6e268017d71b4e9eb 100644
--- a/jams-react-client/src/components/PasswordDialog/PasswordDialog.js
+++ b/jams-react-client/src/components/PasswordDialog/PasswordDialog.tsx
@@ -3,7 +3,7 @@ import React, { useEffect, useState } from "react";
 import { makeStyles } from "@mui/styles";
 // core components
 
-import Button from "components/CustomButtons/Button.js";
+import Button from "components/CustomButtons/Button";
 
 import Dialog from "@mui/material/Dialog";
 import DialogActions from "@mui/material/DialogActions";
@@ -19,7 +19,7 @@ import FormikField from "components/FormikField/FormikField";
 import * as Yup from "yup";
 
 import axios from "axios";
-import configApiCall from "api.js";
+import configApiCall from "api";
 import { api_path_put_update_user } from "globalUrls";
 
 import VpnKeyIcon from "@mui/icons-material/VpnKey";
diff --git a/jams-react-client/src/components/ServerParameters/ServerParameters.js b/jams-react-client/src/components/ServerParameters/ServerParameters.tsx
similarity index 100%
rename from jams-react-client/src/components/ServerParameters/ServerParameters.js
rename to jams-react-client/src/components/ServerParameters/ServerParameters.tsx
diff --git a/jams-react-client/src/components/Sidebar/Sidebar.js b/jams-react-client/src/components/Sidebar/Sidebar.tsx
similarity index 99%
rename from jams-react-client/src/components/Sidebar/Sidebar.js
rename to jams-react-client/src/components/Sidebar/Sidebar.tsx
index 146e00d0bededa79ce6be8688ca459aa59bec1c6..d2750c6e26ed9ce9053ba3a78290ca74319e27dd 100755
--- a/jams-react-client/src/components/Sidebar/Sidebar.js
+++ b/jams-react-client/src/components/Sidebar/Sidebar.tsx
@@ -16,7 +16,7 @@ import Snackbar from "@mui/material/Snackbar/Snackbar";
 import ExitToAppIcon from "@mui/icons-material/ExitToApp";
 import UpdateIcon from "@mui/icons-material/Update";
 
-import styles from "assets/jss/material-dashboard-react/components/sidebarStyle.js";
+import styles from "assets/jss/material-dashboard-react/components/sidebarStyle";
 
 import auth from "auth";
 
diff --git a/jams-react-client/src/components/Snackbar/BlueprintSnackbar.js b/jams-react-client/src/components/Snackbar/BlueprintSnackbar.tsx
similarity index 100%
rename from jams-react-client/src/components/Snackbar/BlueprintSnackbar.js
rename to jams-react-client/src/components/Snackbar/BlueprintSnackbar.tsx
diff --git a/jams-react-client/src/configured.route.js b/jams-react-client/src/configured.route.tsx
similarity index 100%
rename from jams-react-client/src/configured.route.js
rename to jams-react-client/src/configured.route.tsx
diff --git a/jams-react-client/src/globalUrls.js b/jams-react-client/src/globalUrls.tsx
similarity index 100%
rename from jams-react-client/src/globalUrls.js
rename to jams-react-client/src/globalUrls.tsx
diff --git a/jams-react-client/src/i18n.js b/jams-react-client/src/i18n.tsx
similarity index 100%
rename from jams-react-client/src/i18n.js
rename to jams-react-client/src/i18n.tsx
diff --git a/jams-react-client/src/index.js b/jams-react-client/src/index.tsx
similarity index 87%
rename from jams-react-client/src/index.js
rename to jams-react-client/src/index.tsx
index ba4e3798d13297779e73fd4e074e4d687d6b7749..ad3206aa3207e2f596e7969b8bf8aebe5072a844 100644
--- a/jams-react-client/src/index.js
+++ b/jams-react-client/src/index.tsx
@@ -30,16 +30,16 @@ import {
 } from "@mui/material";
 
 // core components
-import UsersRoute from "routes/UsersRoute.js";
-import UserRoute from "routes/UserRoute.js";
-import CreateUserRoute from "routes/CreateUserRoute.js";
-import GroupsRoute from "routes/GroupsRoute.js";
-import GroupRoute from "routes/GroupRoute.js";
-import BlueprintsRoute from "routes/BlueprintsRoute.js";
-import BlueprintRoute from "routes/BlueprintRoute.js";
-import SettingsRoute from "routes/SettingsRoute.js";
+import UsersRoute from "routes/UsersRoute";
+import UserRoute from "routes/UserRoute";
+import CreateUserRoute from "routes/CreateUserRoute";
+import GroupsRoute from "routes/GroupsRoute";
+import GroupRoute from "routes/GroupRoute";
+import BlueprintsRoute from "routes/BlueprintsRoute";
+import BlueprintRoute from "routes/BlueprintRoute";
+import SettingsRoute from "routes/SettingsRoute";
 
-import SignIn from "layouts/SignIn.js";
+import SignIn from "layouts/SignIn";
 
 import "assets/css/material-dashboard-react.css?v=1.9.0";
 
diff --git a/jams-react-client/src/layouts/BaseLayout.js b/jams-react-client/src/layouts/BaseLayout.tsx
similarity index 94%
rename from jams-react-client/src/layouts/BaseLayout.js
rename to jams-react-client/src/layouts/BaseLayout.tsx
index f36ecff8a643174d3b2182e210687b5216640ddd..0dce2c33cbca024a4d0d978247c976d72b1412ab 100644
--- a/jams-react-client/src/layouts/BaseLayout.js
+++ b/jams-react-client/src/layouts/BaseLayout.tsx
@@ -5,9 +5,9 @@ import "perfect-scrollbar/css/perfect-scrollbar.css";
 // @mui/material components
 import { makeStyles } from "@mui/styles";
 // core components
-import Navbar from "components/Navbars/Navbar.js";
-import Footer from "components/Footer/Footer.js";
-import Sidebar from "components/Sidebar/Sidebar.js";
+import Navbar from "components/Navbars/Navbar";
+import Footer from "components/Footer/Footer";
+import Sidebar from "components/Sidebar/Sidebar";
 
 // @mui/icons-material
 import Person from "@mui/icons-material/Person";
@@ -15,19 +15,19 @@ import Group from "@mui/icons-material/Group";
 import AllInbox from "@mui/icons-material/AllInbox";
 import SettingsIcon from "@mui/icons-material/Settings";
 // core components/views for Admin layout
-import Users from "views/Users/Users.js";
-import Groups from "views/Groups/Groups.js";
-import Blueprints from "views/Blueprints/Blueprints.js";
-import Settings from "views/Settings/Settings.js";
+import Users from "views/Users/Users";
+import Groups from "views/Groups/Groups";
+import Blueprints from "views/Blueprints/Blueprints";
+import Settings from "views/Settings/Settings";
 // core components/views for RTL layout
 
-import styles from "assets/jss/material-dashboard-react/layouts/adminStyle.js";
+import styles from "assets/jss/material-dashboard-react/layouts/adminStyle";
 
 import bgImage from "assets/img/sidebar-2.jpg";
 import logo from "assets/img/jams_logo_white_no_gnu_package.svg";
 
 import auth from "auth";
-import configApiCall from "api.js";
+import configApiCall from "api";
 import { api_path_get_start_update } from "globalUrls";
 
 import axios from "axios";
diff --git a/jams-react-client/src/layouts/ListLayout.js b/jams-react-client/src/layouts/ListLayout.tsx
similarity index 94%
rename from jams-react-client/src/layouts/ListLayout.js
rename to jams-react-client/src/layouts/ListLayout.tsx
index e0c29c58f1723f95018e196b163d779639b5f1aa..1b5cf876b7f26f3b247c430130d3cbc99ca9aaec 100644
--- a/jams-react-client/src/layouts/ListLayout.js
+++ b/jams-react-client/src/layouts/ListLayout.tsx
@@ -5,9 +5,9 @@ import "perfect-scrollbar/css/perfect-scrollbar.css";
 // @mui/material components
 import { makeStyles } from "@mui/styles";
 // core components
-import Navbar from "components/Navbars/Navbar.js";
-import Footer from "components/Footer/Footer.js";
-import Sidebar from "components/Sidebar/Sidebar.js";
+import Navbar from "components/Navbars/Navbar";
+import Footer from "components/Footer/Footer";
+import Sidebar from "components/Sidebar/Sidebar";
 
 // @mui/icons-material
 import AccountCircleIcon from "@mui/icons-material/AccountCircle";
@@ -16,19 +16,19 @@ import Group from "@mui/icons-material/Group";
 import AllInbox from "@mui/icons-material/AllInbox";
 import SettingsIcon from "@mui/icons-material/Settings";
 // core components/views for Admin layout
-import Users from "views/Users/Users.js";
-import Groups from "views/Groups/Groups.js";
-import Blueprints from "views/Blueprints/Blueprints.js";
-import Settings from "views/Settings/Settings.js";
+import Users from "views/Users/Users";
+import Groups from "views/Groups/Groups";
+import Blueprints from "views/Blueprints/Blueprints";
+import Settings from "views/Settings/Settings";
 // core components/views for RTL layout
 
-import styles from "assets/jss/material-dashboard-react/layouts/adminStyle.js";
+import styles from "assets/jss/material-dashboard-react/layouts/adminStyle";
 
 import bgImage from "assets/img/sidebar-2.jpg";
 import logo from "assets/img/jams_logo_white_no_gnu_package.svg";
 
 import auth from "auth";
-import configApiCall from "api.js";
+import configApiCall from "api";
 import { api_path_get_start_update } from "globalUrls";
 
 import axios from "axios";
diff --git a/jams-react-client/src/layouts/SignIn.js b/jams-react-client/src/layouts/SignIn.tsx
similarity index 99%
rename from jams-react-client/src/layouts/SignIn.js
rename to jams-react-client/src/layouts/SignIn.tsx
index 8193e23619c96a7d896f0dca957ddf0bf321dc0a..e785aeae473e12cc0af89593d9677d20a99e200f 100644
--- a/jams-react-client/src/layouts/SignIn.js
+++ b/jams-react-client/src/layouts/SignIn.tsx
@@ -10,7 +10,7 @@ import Typography from "@mui/material/Typography";
 import { makeStyles } from "@mui/styles";
 import Container from "@mui/material/Container";
 import MuiAlert from "@mui/material/Alert";
-import auth from "../auth.js";
+import auth from "../auth";
 
 import LanguagePicker from "../components/LanguagePicker/LanguagePicker";
 
diff --git a/jams-react-client/src/layouts/SignUp.js b/jams-react-client/src/layouts/SignUp.tsx
similarity index 100%
rename from jams-react-client/src/layouts/SignUp.js
rename to jams-react-client/src/layouts/SignUp.tsx
diff --git a/jams-react-client/src/protected.route.js b/jams-react-client/src/protected.route.tsx
similarity index 100%
rename from jams-react-client/src/protected.route.js
rename to jams-react-client/src/protected.route.tsx
diff --git a/jams-react-client/src/routes/BlueprintRoute.js b/jams-react-client/src/routes/BlueprintRoute.tsx
similarity index 83%
rename from jams-react-client/src/routes/BlueprintRoute.js
rename to jams-react-client/src/routes/BlueprintRoute.tsx
index 69958c571d6e5c0ad02db8d4c15258eb96987db0..cc9834d959772a0e61684ba53985a80decac05cc 100644
--- a/jams-react-client/src/routes/BlueprintRoute.js
+++ b/jams-react-client/src/routes/BlueprintRoute.tsx
@@ -1,6 +1,6 @@
 import React from "react";
 
-import BaseLayout from "layouts/BaseLayout.js";
+import BaseLayout from "layouts/BaseLayout";
 import Blueprint from "views/Blueprint/Blueprint";
 
 export default function BlueprintRoute(props) {
diff --git a/jams-react-client/src/routes/BlueprintsRoute.js b/jams-react-client/src/routes/BlueprintsRoute.tsx
similarity index 54%
rename from jams-react-client/src/routes/BlueprintsRoute.js
rename to jams-react-client/src/routes/BlueprintsRoute.tsx
index 5faa5f57b396fd396a72002d1fb45f928a6c76f2..0ef3597898074f78a14cd7f4029c457797eebe84 100644
--- a/jams-react-client/src/routes/BlueprintsRoute.js
+++ b/jams-react-client/src/routes/BlueprintsRoute.tsx
@@ -1,8 +1,8 @@
 import React from "react";
 
-import Blueprints from "views/Blueprints/Blueprints.js";
+import Blueprints from "views/Blueprints/Blueprints";
 
-import ListLayout from "layouts/ListLayout.js";
+import ListLayout from "layouts/ListLayout";
 
 export default function BlueprintsRoute() {
   return <ListLayout component={<Blueprints />} />;
diff --git a/jams-react-client/src/routes/CreateUserRoute.js b/jams-react-client/src/routes/CreateUserRoute.tsx
similarity index 87%
rename from jams-react-client/src/routes/CreateUserRoute.js
rename to jams-react-client/src/routes/CreateUserRoute.tsx
index 59a8afec6e3a25d796d4f2f9b34ffe48ba7853c9..b0566210294a727ae799d571019d3c88bee48f04 100644
--- a/jams-react-client/src/routes/CreateUserRoute.js
+++ b/jams-react-client/src/routes/CreateUserRoute.tsx
@@ -1,8 +1,8 @@
 import React from "react";
 
-import EditCreateUserProfile from "views/UserProfile/EditCreateUserProfile.js";
+import EditCreateUserProfile from "views/UserProfile/EditCreateUserProfile";
 
-import ListLayout from "layouts/ListLayout.js";
+import ListLayout from "layouts/ListLayout";
 
 export default function CreateUserRoute() {
   return <ListLayout component={<EditCreateUserProfile createUser={true} />} />;
diff --git a/jams-react-client/src/routes/GroupRoute.js b/jams-react-client/src/routes/GroupRoute.tsx
similarity index 64%
rename from jams-react-client/src/routes/GroupRoute.js
rename to jams-react-client/src/routes/GroupRoute.tsx
index 1e3e21f7f11c6dba1f2a5ef3f0215f4655a53288..f0ce8fb322eff30af47fa28ca72191e8d5568dc9 100644
--- a/jams-react-client/src/routes/GroupRoute.js
+++ b/jams-react-client/src/routes/GroupRoute.tsx
@@ -1,7 +1,7 @@
 import React from "react";
 
-import ListLayout from "layouts/ListLayout.js";
-import EditGroup from "views/Groups/EditGroup.js";
+import ListLayout from "layouts/ListLayout";
+import EditGroup from "views/Groups/EditGroup";
 
 export default function GroupRoute(props) {
   return (
diff --git a/jams-react-client/src/routes/GroupsRoute.js b/jams-react-client/src/routes/GroupsRoute.tsx
similarity index 56%
rename from jams-react-client/src/routes/GroupsRoute.js
rename to jams-react-client/src/routes/GroupsRoute.tsx
index 2f016c1916731be6d4c4c474fb8c02540be2f470..b25da0652fe649c82e083508b1fbf693a49d6178 100644
--- a/jams-react-client/src/routes/GroupsRoute.js
+++ b/jams-react-client/src/routes/GroupsRoute.tsx
@@ -1,7 +1,7 @@
 import React from "react";
 
-import ListLayout from "layouts/ListLayout.js";
-import Groups from "views/Groups/Groups.js";
+import ListLayout from "layouts/ListLayout";
+import Groups from "views/Groups/Groups";
 
 export default function GroupsRoute() {
   return <ListLayout component={<Groups />} />;
diff --git a/jams-react-client/src/routes/SettingsRoute.js b/jams-react-client/src/routes/SettingsRoute.tsx
similarity index 55%
rename from jams-react-client/src/routes/SettingsRoute.js
rename to jams-react-client/src/routes/SettingsRoute.tsx
index be3648222da2c60e6d155ab06cd70551b2fa54bb..146d0106d39470f3e955f315ea28909ec7fdd4a0 100644
--- a/jams-react-client/src/routes/SettingsRoute.js
+++ b/jams-react-client/src/routes/SettingsRoute.tsx
@@ -1,8 +1,8 @@
 import React from "react";
 
-import Settings from "views/Settings/Settings.js";
+import Settings from "views/Settings/Settings";
 
-import BaseLayout from "layouts/BaseLayout.js";
+import BaseLayout from "layouts/BaseLayout";
 
 export default function SettingsRoute() {
   return <BaseLayout component={<Settings />} />;
diff --git a/jams-react-client/src/routes/UserRoute.js b/jams-react-client/src/routes/UserRoute.tsx
similarity index 63%
rename from jams-react-client/src/routes/UserRoute.js
rename to jams-react-client/src/routes/UserRoute.tsx
index 3f3e1ff3c5436399b8af23a5090792febddd8850..2be35c56573fc6a6c9d5bf7ecd5fa057483c7347 100644
--- a/jams-react-client/src/routes/UserRoute.js
+++ b/jams-react-client/src/routes/UserRoute.tsx
@@ -1,8 +1,8 @@
 import React from "react";
 
-import UserProfile from "views/UserProfile/UserProfile.js";
+import UserProfile from "views/UserProfile/UserProfile";
 
-import BaseLayout from "layouts/BaseLayout.js";
+import BaseLayout from "layouts/BaseLayout";
 
 export default function UsersRoute(props) {
   return (
diff --git a/jams-react-client/src/routes/UsersRoute.js b/jams-react-client/src/routes/UsersRoute.tsx
similarity index 56%
rename from jams-react-client/src/routes/UsersRoute.js
rename to jams-react-client/src/routes/UsersRoute.tsx
index 565e824716ce94b4734c1aaef95a34e17e24921c..6bfd698e1f4cdc6319dfb945b302b31d500ae15a 100644
--- a/jams-react-client/src/routes/UsersRoute.js
+++ b/jams-react-client/src/routes/UsersRoute.tsx
@@ -1,8 +1,8 @@
 import React from "react";
 
-import Users from "views/Users/Users.js";
+import Users from "views/Users/Users";
 
-import ListLayout from "layouts/ListLayout.js";
+import ListLayout from "layouts/ListLayout";
 
 export default function UsersRoute() {
   return <ListLayout component={<Users />} />;
diff --git a/jams-react-client/src/tools.js b/jams-react-client/src/tools.tsx
similarity index 100%
rename from jams-react-client/src/tools.js
rename to jams-react-client/src/tools.tsx
diff --git a/jams-react-client/src/views/Blueprint/Blueprint.js b/jams-react-client/src/views/Blueprint/Blueprint.tsx
similarity index 100%
rename from jams-react-client/src/views/Blueprint/Blueprint.js
rename to jams-react-client/src/views/Blueprint/Blueprint.tsx
diff --git a/jams-react-client/src/views/Blueprint/ColorPickerPopup.js b/jams-react-client/src/views/Blueprint/ColorPickerPopup.tsx
similarity index 100%
rename from jams-react-client/src/views/Blueprint/ColorPickerPopup.js
rename to jams-react-client/src/views/Blueprint/ColorPickerPopup.tsx
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.tsx
similarity index 98%
rename from jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
rename to jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.tsx
index f6e5d50ee911b20c2f46c95f11edd69eb7717c29..2fc0d60c4260be4a9119c25c6be53a3937a04202 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.tsx
@@ -7,12 +7,12 @@ import InputLabel from "@mui/material/InputLabel";
 
 // core components
 import Grid from "@mui/material/Grid";
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
-import Card from "components/Card/Card.js";
-import CardHeader from "components/Card/CardHeader.js";
-import CardIcon from "components/Card/CardIcon.js";
-import CardBody from "components/Card/CardBody.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
+import Card from "components/Card/Card";
+import CardHeader from "components/Card/CardHeader";
+import CardIcon from "components/Card/CardIcon";
+import CardBody from "components/Card/CardBody";
 import FormGroup from "@mui/material/FormGroup";
 import FormControlLabel from "@mui/material/FormControlLabel";
 import FormControl from "@mui/material/FormControl";
@@ -35,8 +35,8 @@ import LanguageOutlinedIcon from "@mui/icons-material/LanguageOutlined";
 
 import i18next from "i18next";
 
-import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle.js";
-import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react.js";
+import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle";
+import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react";
 
 import BlueprintSnackbar from "components/Snackbar/BlueprintSnackbar";
 import CustomPopupState from "components/CustomPopupState/CustomPopupState";
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.tsx
similarity index 97%
rename from jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
rename to jams-react-client/src/views/Blueprint/EditBlueprintPermissions.tsx
index 8560454402db3d095d430e9ce5a786dcaadfc65d..9ab64a98d57e2959ada789fa8dcaf791177d4e3e 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.tsx
@@ -23,19 +23,19 @@ import AddCircleOutlineIcon from "@mui/icons-material/AddCircleOutline";
 import PriorityHighOutlinedIcon from "@mui/icons-material/PriorityHighOutlined";
 
 import BlueprintSnackbar from "components/Snackbar/BlueprintSnackbar";
-import Button from "components/CustomButtons/Button.js";
-import Card from "components/Card/Card.js";
-import CardBody from "components/Card/CardBody.js";
-import CardHeader from "components/Card/CardHeader.js";
-import CardIcon from "components/Card/CardIcon.js";
+import Button from "components/CustomButtons/Button";
+import Card from "components/Card/Card";
+import CardBody from "components/Card/CardBody";
+import CardHeader from "components/Card/CardHeader";
+import CardIcon from "components/Card/CardIcon";
 import CustomPopupState from "components/CustomPopupState/CustomPopupState";
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
 import TemporaryDrawer from "components/Drawer/Drawer";
 
-import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react.js";
+import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react";
 import noProfilePicture from "assets/img/faces/no-profile-picture.png";
-import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle.js";
+import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle";
 
 import auth from "../../auth";
 import configApiCall from "../../api";
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintUi.js b/jams-react-client/src/views/Blueprint/EditBlueprintUi.tsx
similarity index 94%
rename from jams-react-client/src/views/Blueprint/EditBlueprintUi.js
rename to jams-react-client/src/views/Blueprint/EditBlueprintUi.tsx
index 451a67997350d1fcb0939a60ac1f4e29cd093652..82c0b8a8677c07f6822daaa292b8f2c42be14b9d 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintUi.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintUi.tsx
@@ -5,14 +5,14 @@ import Grid from "@mui/material/Grid";
 import SettingsIcon from "@mui/icons-material/Settings";
 
 import BlueprintSnackbar from "components/Snackbar/BlueprintSnackbar";
-import Card from "components/Card/Card.js";
-import CardHeader from "components/Card/CardHeader.js";
-import CardIcon from "components/Card/CardIcon.js";
-import CardBody from "components/Card/CardBody.js";
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
+import Card from "components/Card/Card";
+import CardHeader from "components/Card/CardHeader";
+import CardIcon from "components/Card/CardIcon";
+import CardBody from "components/Card/CardBody";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
 
-import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react.js";
+import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react";
 
 import {
   api_path_get_image,
@@ -21,7 +21,7 @@ import {
   url_port,
 } from "../../globalUrls";
 
-import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle.js";
+import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle";
 
 import i18next from "i18next";
 
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintUiForm.js b/jams-react-client/src/views/Blueprint/EditBlueprintUiForm.tsx
similarity index 100%
rename from jams-react-client/src/views/Blueprint/EditBlueprintUiForm.js
rename to jams-react-client/src/views/Blueprint/EditBlueprintUiForm.tsx
diff --git a/jams-react-client/src/views/Blueprint/PolicyDataContext.js b/jams-react-client/src/views/Blueprint/PolicyDataContext.tsx
similarity index 100%
rename from jams-react-client/src/views/Blueprint/PolicyDataContext.js
rename to jams-react-client/src/views/Blueprint/PolicyDataContext.tsx
diff --git a/jams-react-client/src/views/Blueprint/parsePolicyData.js b/jams-react-client/src/views/Blueprint/parsePolicyData.tsx
similarity index 100%
rename from jams-react-client/src/views/Blueprint/parsePolicyData.js
rename to jams-react-client/src/views/Blueprint/parsePolicyData.tsx
diff --git a/jams-react-client/src/views/Blueprint/policyData.constants.js b/jams-react-client/src/views/Blueprint/policyData.constants.tsx
similarity index 100%
rename from jams-react-client/src/views/Blueprint/policyData.constants.js
rename to jams-react-client/src/views/Blueprint/policyData.constants.tsx
diff --git a/jams-react-client/src/views/Blueprint/updatePolicyData.js b/jams-react-client/src/views/Blueprint/updatePolicyData.tsx
similarity index 100%
rename from jams-react-client/src/views/Blueprint/updatePolicyData.js
rename to jams-react-client/src/views/Blueprint/updatePolicyData.tsx
diff --git a/jams-react-client/src/views/Blueprints/Blueprints.js b/jams-react-client/src/views/Blueprints/Blueprints.tsx
similarity index 94%
rename from jams-react-client/src/views/Blueprints/Blueprints.js
rename to jams-react-client/src/views/Blueprints/Blueprints.tsx
index 3d204a78e95a11996b08ca246c28e78de56b7d53..5579325c0a97a8972450608c86a1038b6a98b0da 100644
--- a/jams-react-client/src/views/Blueprints/Blueprints.js
+++ b/jams-react-client/src/views/Blueprints/Blueprints.tsx
@@ -3,14 +3,14 @@ import { Link, useHistory } from "react-router-dom";
 // @mui/material components
 import { makeStyles } from "@mui/styles";
 // core components
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
-import CustomInput from "components/CustomInput/CustomInput.js";
-import Button from "components/CustomButtons/Button.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
+import CustomInput from "components/CustomInput/CustomInput";
+import Button from "components/CustomButtons/Button";
 import IconButton from "@mui/material/IconButton";
-import Card from "components/Card/Card.js";
-import CardBody from "components/Card/CardBody.js";
-import CardFooter from "components/Card/CardFooter.js";
+import Card from "components/Card/Card";
+import CardBody from "components/Card/CardBody";
+import CardFooter from "components/Card/CardFooter";
 
 import GroupIcon from "@mui/icons-material/Group";
 import PersonIcon from "@mui/icons-material/Person";
@@ -19,15 +19,15 @@ import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
 import InfoIcon from "@mui/icons-material/Info";
 
 import axios from "axios";
-import configApiCall from "api.js";
-import auth from "auth.js";
+import configApiCall from "api";
+import auth from "auth";
 import { api_path_blueprints } from "globalUrls";
 
 import AddCircleOutlineIcon from "@mui/icons-material/AddCircleOutline";
 
 import LinearProgress from "@mui/material/LinearProgress";
 
-import headerLinksStyle from "assets/jss/material-dashboard-react/components/headerLinksStyle.js";
+import headerLinksStyle from "assets/jss/material-dashboard-react/components/headerLinksStyle";
 
 import Dialog from "@mui/material/Dialog";
 import DialogActions from "@mui/material/DialogActions";
diff --git a/jams-react-client/src/views/Blueprints/CreateBlueprintDialog.js b/jams-react-client/src/views/Blueprints/CreateBlueprintDialog.tsx
similarity index 98%
rename from jams-react-client/src/views/Blueprints/CreateBlueprintDialog.js
rename to jams-react-client/src/views/Blueprints/CreateBlueprintDialog.tsx
index b7d3de009ee9569452d541d809ae840a287d833e..bf1d2cbb6e6c888623343fa70fdec2c364e9e324 100644
--- a/jams-react-client/src/views/Blueprints/CreateBlueprintDialog.js
+++ b/jams-react-client/src/views/Blueprints/CreateBlueprintDialog.tsx
@@ -16,7 +16,7 @@ import { AllInbox } from "@mui/icons-material";
 import configApiCall from "api";
 import { api_path_blueprints } from "globalUrls";
 
-import Button from "components/CustomButtons/Button.js";
+import Button from "components/CustomButtons/Button";
 
 const getHelperText = (disableCreate, blueprintName) => {
   if (disableCreate && blueprintName.length > 0) {
diff --git a/jams-react-client/src/views/Contacts/Contacts.js b/jams-react-client/src/views/Contacts/Contacts.tsx
similarity index 96%
rename from jams-react-client/src/views/Contacts/Contacts.js
rename to jams-react-client/src/views/Contacts/Contacts.tsx
index 9e11c61aa131bdb3d8df95d2fc5e4eed01b99951..5736bdc6003c8ae8ec5c4279f9ab4b9db6945a98 100644
--- a/jams-react-client/src/views/Contacts/Contacts.js
+++ b/jams-react-client/src/views/Contacts/Contacts.tsx
@@ -3,14 +3,14 @@ import { useHistory } from "react-router-dom";
 // @mui/material components
 import { makeStyles } from "@mui/styles";
 // core components
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
-import CustomInput from "components/CustomInput/CustomInput.js";
-import Button from "components/CustomButtons/Button.js";
-import Card from "components/Card/Card.js";
-import CardAvatar from "components/Card/CardAvatar.js";
-import CardBody from "components/Card/CardBody.js";
-import CardFooter from "components/Card/CardFooter.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
+import CustomInput from "components/CustomInput/CustomInput";
+import Button from "components/CustomButtons/Button";
+import Card from "components/Card/Card";
+import CardAvatar from "components/Card/CardAvatar";
+import CardBody from "components/Card/CardBody";
+import CardFooter from "components/Card/CardFooter";
 
 import BusinessOutlinedIcon from "@mui/icons-material/BusinessOutlined";
 import QuestionAnswerIcon from "@mui/icons-material/QuestionAnswer";
@@ -21,8 +21,8 @@ import Search from "@mui/icons-material/Search";
 import IconButton from "@mui/material/IconButton";
 
 import axios from "axios";
-import configApiCall from "api.js";
-import auth from "auth.js";
+import configApiCall from "api";
+import auth from "auth";
 import {
   api_path_get_auth_contacts,
   api_path_get_admin_contacts,
@@ -39,7 +39,7 @@ import jami from "assets/img/faces/jami.png";
 import noProfilePicture from "assets/img/faces/no-profile-picture.png";
 import LinearProgress from "@mui/material/LinearProgress";
 
-import headerLinksStyle from "assets/jss/material-dashboard-react/components/headerLinksStyle.js";
+import headerLinksStyle from "assets/jss/material-dashboard-react/components/headerLinksStyle";
 import TemporaryDrawer from "components/Drawer/Drawer";
 import Dialog from "@mui/material/Dialog";
 import DialogActions from "@mui/material/DialogActions";
diff --git a/jams-react-client/src/views/Groups/CreateGroupDialog.js b/jams-react-client/src/views/Groups/CreateGroupDialog.tsx
similarity index 99%
rename from jams-react-client/src/views/Groups/CreateGroupDialog.js
rename to jams-react-client/src/views/Groups/CreateGroupDialog.tsx
index 88b2e821322bf15ef1453aac122cb923ef1db9de..9661ac59e5c8dc0da68f635aea9ea6379445b2af 100644
--- a/jams-react-client/src/views/Groups/CreateGroupDialog.js
+++ b/jams-react-client/src/views/Groups/CreateGroupDialog.tsx
@@ -23,7 +23,7 @@ import {
 import { getBlueprintsOptions } from "./getBlueprintsOptions";
 import auth from "auth";
 import * as tool from "../../tools";
-import Button from "components/CustomButtons/Button.js";
+import Button from "components/CustomButtons/Button";
 
 const getHelperText = (disableCreate, groupName) => {
   if (disableCreate && groupName.length > 0) {
diff --git a/jams-react-client/src/views/Groups/EditGroup.js b/jams-react-client/src/views/Groups/EditGroup.tsx
similarity index 97%
rename from jams-react-client/src/views/Groups/EditGroup.js
rename to jams-react-client/src/views/Groups/EditGroup.tsx
index d49ef7d9f2fb8e6da3c6a13b4f86f21b8ccb7921..9f396c5a64a4ebc80410a81a18d958b3c6ef59b4 100644
--- a/jams-react-client/src/views/Groups/EditGroup.js
+++ b/jams-react-client/src/views/Groups/EditGroup.tsx
@@ -7,13 +7,13 @@ import { makeStyles } from "@mui/styles";
 
 // core components
 import Grid from "@mui/material/Grid";
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
-import Button from "components/CustomButtons/Button.js";
-import Card from "components/Card/Card.js";
-import CardHeader from "components/Card/CardHeader.js";
-import CardIcon from "components/Card/CardIcon.js";
-import CardBody from "components/Card/CardBody.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
+import Button from "components/CustomButtons/Button";
+import Card from "components/Card/Card";
+import CardHeader from "components/Card/CardHeader";
+import CardIcon from "components/Card/CardIcon";
+import CardBody from "components/Card/CardBody";
 import FormControl from "@mui/material/FormControl";
 import Input from "@mui/material/Input";
 import InputAdornment from "@mui/material/InputAdornment";
@@ -48,8 +48,8 @@ import {
   api_path_delete_group_member,
 } from "../../globalUrls";
 
-import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle.js";
-import devicesStyle from "assets/jss/material-dashboard-react/components/devicesStyle.js";
+import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle";
+import devicesStyle from "assets/jss/material-dashboard-react/components/devicesStyle";
 import Avatar from "@mui/material/Avatar";
 
 import noProfilePicture from "assets/img/faces/no-profile-picture.png";
@@ -59,7 +59,7 @@ import * as tool from "../../tools";
 
 import i18next from "i18next";
 
-import auth from "auth.js";
+import auth from "auth";
 
 import { debounce } from "lodash";
 
diff --git a/jams-react-client/src/views/Groups/Groups.js b/jams-react-client/src/views/Groups/Groups.tsx
similarity index 95%
rename from jams-react-client/src/views/Groups/Groups.js
rename to jams-react-client/src/views/Groups/Groups.tsx
index 3a7692201e80d862b6821447e65ee530fe960f15..63b8adb2ed29c72707c0a7241f0af6329a4f9c0e 100644
--- a/jams-react-client/src/views/Groups/Groups.js
+++ b/jams-react-client/src/views/Groups/Groups.tsx
@@ -3,13 +3,13 @@ import { Link, useHistory } from "react-router-dom";
 // @mui/material components
 import { makeStyles } from "@mui/styles";
 // core components
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
-import Button from "components/CustomButtons/Button.js";
-import Card from "components/Card/Card.js";
-import CardBody from "components/Card/CardBody.js";
-import CardFooter from "components/Card/CardFooter.js";
-import CustomInput from "components/CustomInput/CustomInput.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
+import Button from "components/CustomButtons/Button";
+import Card from "components/Card/Card";
+import CardBody from "components/Card/CardBody";
+import CardFooter from "components/Card/CardFooter";
+import CustomInput from "components/CustomInput/CustomInput";
 
 import IconButton from "@mui/material/IconButton";
 import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
@@ -19,8 +19,8 @@ import PersonIcon from "@mui/icons-material/Person";
 import InfoIcon from "@mui/icons-material/Info";
 
 import axios from "axios";
-import configApiCall from "api.js";
-import auth from "auth.js";
+import configApiCall from "api";
+import auth from "auth";
 import {
   api_path_get_list_group,
   api_path_delete_group,
diff --git a/jams-react-client/src/views/Groups/getBlueprintsOptions.js b/jams-react-client/src/views/Groups/getBlueprintsOptions.tsx
similarity index 100%
rename from jams-react-client/src/views/Groups/getBlueprintsOptions.js
rename to jams-react-client/src/views/Groups/getBlueprintsOptions.tsx
diff --git a/jams-react-client/src/views/Settings/General.js b/jams-react-client/src/views/Settings/General.tsx
similarity index 98%
rename from jams-react-client/src/views/Settings/General.js
rename to jams-react-client/src/views/Settings/General.tsx
index 04ebe33adfb4433435b08c07179db532dd4db7c2..2d8ade87e3e8f5715abe1290f7cc3ebd7cef2d24 100644
--- a/jams-react-client/src/views/Settings/General.js
+++ b/jams-react-client/src/views/Settings/General.tsx
@@ -15,10 +15,10 @@ import IconButton from "@mui/material/IconButton";
 import VpnKeyIcon from "@mui/icons-material/VpnKey";
 import InputAdornment from "@mui/material/InputAdornment";
 
-import GridContainer from "components/Grid/GridContainer.js";
-import Card from "components/Card/Card.js";
-import CardHeader from "components/Card/CardHeader.js";
-import CardBody from "components/Card/CardBody.js";
+import GridContainer from "components/Grid/GridContainer";
+import Card from "components/Card/Card";
+import CardHeader from "components/Card/CardHeader";
+import CardBody from "components/Card/CardBody";
 
 import axios from "axios";
 import configApiCall from "../../api";
diff --git a/jams-react-client/src/views/Settings/Settings.js b/jams-react-client/src/views/Settings/Settings.tsx
similarity index 99%
rename from jams-react-client/src/views/Settings/Settings.js
rename to jams-react-client/src/views/Settings/Settings.tsx
index b762eaf0f0ddc58850144f0fb8a425a20205aafe..02b37f41151098a3da202d2cbe03ef2094e18792 100644
--- a/jams-react-client/src/views/Settings/Settings.js
+++ b/jams-react-client/src/views/Settings/Settings.tsx
@@ -12,7 +12,7 @@ import Box from "@mui/material/Box";
 
 import MuiAlert from "@mui/material/Alert";
 
-import auth from "auth.js";
+import auth from "auth";
 
 import i18next from "i18next";
 
diff --git a/jams-react-client/src/views/Settings/Subscription.js b/jams-react-client/src/views/Settings/Subscription.tsx
similarity index 96%
rename from jams-react-client/src/views/Settings/Subscription.js
rename to jams-react-client/src/views/Settings/Subscription.tsx
index 32ce443dbd6d74322ca7bdb7ff232a0f56e5769a..a578ed6b425fa1e7afad96f3ed5380453ef6c4da 100644
--- a/jams-react-client/src/views/Settings/Subscription.js
+++ b/jams-react-client/src/views/Settings/Subscription.tsx
@@ -7,10 +7,10 @@ import Grid from "@mui/material/Grid";
 import Typography from "@mui/material/Typography";
 import { makeStyles } from "@mui/styles";
 
-import GridContainer from "components/Grid/GridContainer.js";
-import Card from "components/Card/Card.js";
-import CardHeader from "components/Card/CardHeader.js";
-import CardBody from "components/Card/CardBody.js";
+import GridContainer from "components/Grid/GridContainer";
+import Card from "components/Card/Card";
+import CardHeader from "components/Card/CardHeader";
+import CardBody from "components/Card/CardBody";
 
 import axios from "axios";
 import configApiCall from "../../api";
diff --git a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js b/jams-react-client/src/views/UserProfile/DisplayUserProfile.tsx
similarity index 98%
rename from jams-react-client/src/views/UserProfile/DisplayUserProfile.js
rename to jams-react-client/src/views/UserProfile/DisplayUserProfile.tsx
index 7863a4c6e83e689d46c4977509437f1b297fa7b1..7a4b33e007d8195336d6128f2ef1a2928effbba3 100644
--- a/jams-react-client/src/views/UserProfile/DisplayUserProfile.js
+++ b/jams-react-client/src/views/UserProfile/DisplayUserProfile.tsx
@@ -5,11 +5,11 @@ import classnames from "classnames";
 // @mui/material components
 import { makeStyles } from "@mui/styles";
 // core components
-import GridContainer from "components/Grid/GridContainer.js";
-import Button from "components/CustomButtons/Button.js";
-import Card from "components/Card/Card.js";
-import CardBody from "components/Card/CardBody.js";
-import CardFooter from "components/Card/CardFooter.js";
+import GridContainer from "components/Grid/GridContainer";
+import Button from "components/CustomButtons/Button";
+import Card from "components/Card/Card";
+import CardBody from "components/Card/CardBody";
+import CardFooter from "components/Card/CardFooter";
 import noProfilePicture from "assets/img/faces/no-profile-picture.png";
 
 import Dialog from "@mui/material/Dialog";
@@ -28,7 +28,7 @@ import TableBody from "@mui/material/TableBody";
 import TableCell from "@mui/material/TableCell";
 
 import Grid from "@mui/material/Grid";
-import GridItem from "components/Grid/GridItem.js";
+import GridItem from "components/Grid/GridItem";
 import BusinessCenterOutlinedIcon from "@mui/icons-material/BusinessCenterOutlined";
 import AlternateEmailOutlinedIcon from "@mui/icons-material/AlternateEmailOutlined";
 import PhoneInTalkOutlinedIcon from "@mui/icons-material/PhoneInTalkOutlined";
@@ -49,8 +49,8 @@ import ListItemText from "@mui/material/ListItemText";
 
 import LinearProgress from "@mui/material/LinearProgress";
 
-import auth from "auth.js";
-import configApiCall from "api.js";
+import auth from "auth";
+import configApiCall from "api";
 import {
   api_path_get_admin_user,
   api_path_get_auth_user,
@@ -63,9 +63,9 @@ import {
   api_path_delete_group_member,
 } from "globalUrls";
 
-import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle.js";
+import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle";
 
-import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react.js";
+import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react";
 import axios from "axios";
 
 import PasswordDialog from "components/PasswordDialog/PasswordDialog";
diff --git a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.tsx
similarity index 98%
rename from jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
rename to jams-react-client/src/views/UserProfile/EditCreateUserProfile.tsx
index 389179238e6f33282bdc9e97091d2e06a95e280d..0cfde3113f0b811ac0d80b4eefc2876ffc97218c 100644
--- a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js
+++ b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.tsx
@@ -6,14 +6,14 @@ import { makeStyles } from "@mui/styles";
 
 // core components
 import Grid from "@mui/material/Grid";
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
-import Button from "components/CustomButtons/Button.js";
-import Card from "components/Card/Card.js";
-import CardAvatar from "components/Card/CardAvatar.js";
-import CardHeader from "components/Card/CardHeader.js";
-import CardBody from "components/Card/CardBody.js";
-import CardFooter from "components/Card/CardFooter.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
+import Button from "components/CustomButtons/Button";
+import Card from "components/Card/Card";
+import CardAvatar from "components/Card/CardAvatar";
+import CardHeader from "components/Card/CardHeader";
+import CardBody from "components/Card/CardBody";
+import CardFooter from "components/Card/CardFooter";
 import InputAdornment from "@mui/material/InputAdornment";
 import Slider from "@mui/material/Slider";
 import Typography from "@mui/material/Typography";
@@ -25,7 +25,7 @@ import DialogTitle from "@mui/material/DialogTitle";
 import Cropper from "react-easy-crop";
 import getCroppedImg from "./cropImage";
 
-import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react.js";
+import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react";
 
 import AccountCircleIcon from "@mui/icons-material/AccountCircle";
 import BusinessCenterOutlinedIcon from "@mui/icons-material/BusinessCenterOutlined";
@@ -63,7 +63,7 @@ import {
   api_path_get_ns_addr_from_name,
 } from "../../globalUrls";
 
-import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle.js";
+import dashboardStyle from "assets/jss/material-dashboard-react/views/dashboardStyle";
 
 import FormikField from "components/FormikField/FormikField";
 import { Formik } from "formik";
diff --git a/jams-react-client/src/views/UserProfile/UserProfile.js b/jams-react-client/src/views/UserProfile/UserProfile.tsx
similarity index 98%
rename from jams-react-client/src/views/UserProfile/UserProfile.js
rename to jams-react-client/src/views/UserProfile/UserProfile.tsx
index 08629f9fa59dd4ca1260c450450bbd60afacf040..4fd5fe814fee6a8a7f40e58d60f423492e17bfaf 100755
--- a/jams-react-client/src/views/UserProfile/UserProfile.js
+++ b/jams-react-client/src/views/UserProfile/UserProfile.tsx
@@ -1,7 +1,7 @@
 import React, { useEffect, useState } from "react";
 import { useHistory } from "react-router-dom";
 // core components
-import Devices from "components/Devices/Devices.js";
+import Devices from "components/Devices/Devices";
 
 import PropTypes from "prop-types";
 import AppBar from "@mui/material/AppBar";
diff --git a/jams-react-client/src/views/UserProfile/cropImage.js b/jams-react-client/src/views/UserProfile/cropImage.tsx
similarity index 100%
rename from jams-react-client/src/views/UserProfile/cropImage.js
rename to jams-react-client/src/views/UserProfile/cropImage.tsx
diff --git a/jams-react-client/src/views/Users/Users.js b/jams-react-client/src/views/Users/Users.tsx
similarity index 95%
rename from jams-react-client/src/views/Users/Users.js
rename to jams-react-client/src/views/Users/Users.tsx
index ebc30a496778f4da656c41abedbda6df2ca312b3..c509559e65c453e02424b5faa7c5ed236d82b21e 100644
--- a/jams-react-client/src/views/Users/Users.js
+++ b/jams-react-client/src/views/Users/Users.tsx
@@ -5,14 +5,14 @@ import { useHistory } from "react-router-dom";
 import { makeStyles } from "@mui/styles";
 import { Pagination } from "@mui/material";
 // core components
-import GridItem from "components/Grid/GridItem.js";
-import GridContainer from "components/Grid/GridContainer.js";
-import CustomInput from "components/CustomInput/CustomInput.js";
-import Button from "components/CustomButtons/Button.js";
-import Card from "components/Card/Card.js";
+import GridItem from "components/Grid/GridItem";
+import GridContainer from "components/Grid/GridContainer";
+import CustomInput from "components/CustomInput/CustomInput";
+import Button from "components/CustomButtons/Button";
+import Card from "components/Card/Card";
 
-import CardAvatar from "components/Card/CardAvatar.js";
-import CardBody from "components/Card/CardBody.js";
+import CardAvatar from "components/Card/CardAvatar";
+import CardBody from "components/Card/CardBody";
 
 import InfoIcon from "@mui/icons-material/Info";
 import BusinessOutlinedIcon from "@mui/icons-material/BusinessOutlined";
@@ -20,14 +20,14 @@ import Search from "@mui/icons-material/Search";
 import Checkbox from "@mui/material/Checkbox";
 import FormControlLabel from "@mui/material/FormControlLabel";
 import axios from "axios";
-import configApiCall from "api.js";
-import auth from "auth.js";
+import configApiCall from "api";
+import auth from "auth";
 import { api_path_get_user_directory_search } from "globalUrls";
 import AddCircleOutlineIcon from "@mui/icons-material/AddCircleOutline";
 import jami from "assets/img/faces/jami.png";
 import noProfilePicture from "assets/img/faces/no-profile-picture.png";
 import LinearProgress from "@mui/material/LinearProgress";
-import headerLinksStyle from "assets/jss/material-dashboard-react/components/headerLinksStyle.js";
+import headerLinksStyle from "assets/jss/material-dashboard-react/components/headerLinksStyle";
 import { debounce } from "lodash";
 
 import i18next from "i18next";