diff --git a/.eslintrc b/.eslintrc
index 79d61f94f91f6e5b312477c8d02a1d72c1047f2d..a8a5252bdd8296b365dda5301eea4c375d068f9e 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -16,7 +16,8 @@
     "plugin:@typescript-eslint/recommended",
     "plugin:cypress/recommended",
     "plugin:prettier/recommended",
-    "plugin:import/typescript"
+    "plugin:import/typescript",
+    "plugin:import/recommended"
   ],
   "settings": {
     "react": {
@@ -41,7 +42,29 @@
   },
   "rules": {
     "react/prop-types": "off",
-    "no-duplicate-imports": "error",
+    "import/order": [
+      "error",
+      {
+        "groups": [
+          "external",
+          "index",
+          "sibling",
+          "parent",
+          "internal",
+          "builtin",
+          "object",
+          "type"
+        ]
+      }
+    ],
+    "import/export": "error",
+    "import/default": "error",
+    "import/named": "error",
+    "import/namespace": "error",
+    "import/no-named-as-default": 2,
+    "import/no-named-as-default-member": 2,
+    "import/no-unresolved": ["error", { "caseSensitive": false, "commonjs": true, "amd": true }],
+    "import/no-duplicates": "error",
     "consistent-this": [
       "error",
       "self"
@@ -55,12 +78,6 @@
         "null": "ignore"
       }
     ],
-    "import/no-unresolved": [
-      2,
-      {
-        "caseSensitive": false
-      }
-    ],
     "no-console": [
       "error",
       {
diff --git a/package-lock.json b/package-lock.json
index 8d18305da515ff6870b65060697d01a6c9fc8e1b..37321929629a82faf53ea331999421281d2c1a28 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -47,7 +47,7 @@
         "eslint-formatter-gitlab": "^4.0.0",
         "eslint-import-resolver-typescript": "^3.6.3",
         "eslint-plugin-cypress": "^2.15.1",
-        "eslint-plugin-import": "^2.30.0",
+        "eslint-plugin-import": "^2.31.0",
         "eslint-plugin-prettier": "^5.2.1",
         "eslint-plugin-react": "^7.37.1",
         "eslint-plugin-react-hooks": "^5.0.0",
diff --git a/package.json b/package.json
index f5f7935388a6ef090da136623ce6e51950c9030d..72a1ad91ef678fa1b90dcc22ff1d00c16ed20bc7 100644
--- a/package.json
+++ b/package.json
@@ -76,7 +76,7 @@
     "eslint-formatter-gitlab": "^4.0.0",
     "eslint-import-resolver-typescript": "^3.6.3",
     "eslint-plugin-cypress": "^2.15.1",
-    "eslint-plugin-import": "^2.30.0",
+    "eslint-plugin-import": "^2.31.0",
     "eslint-plugin-prettier": "^5.2.1",
     "eslint-plugin-react": "^7.37.1",
     "eslint-plugin-react-hooks": "^5.0.0",
diff --git a/src/App.jsx b/src/App.jsx
index 1e3dcbd585252894248c08c2bc981c9d6dbd6981..cf32f89bccdead61506d4b26a08ab261f051bcf6 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -4,7 +4,7 @@ import { StyledEngineProvider, CssBaseline } from "@mui/material";
 import { ThemeProvider } from "@mui/material/styles";
 import { theme } from "./style/Theme";
 import { IOCListView } from "./views/IOC/IOCListView";
-import NavigationMenu from "./components/navigation/NavigationMenu";
+import { NavigationMenu } from "./components/navigation/NavigationMenu";
 import { IOCDetailsAccessControl } from "./views/IOC/IOCDetailsAccessControl";
 import { JobDetailsAccessControl } from "./views/jobs/JobDetailsAccessControl";
 import { UserProvider } from "./api/UserProvider";
@@ -12,7 +12,7 @@ import { HostListView } from "./views/host/HostListView";
 import { HostDetailsAccessControl } from "./views/host/details/HostDetailsAccessControl";
 import { HelpView } from "./views/help/HelpView";
 import { SnackbarProvider } from "notistack";
-import TokenRenew from "./components/auth/TokenRenew";
+import { TokenRenew } from "./components/auth/TokenRenew";
 import { NotFoundView } from "./components/navigation/NotFoundView";
 import { AppErrorBoundary, GlobalAppBarContext } from "@ess-ics/ce-ui-common";
 import { LoginView } from "./views/login/LoginView";
diff --git a/src/components/IOC/AdministerUndeployment/AdministerUndeployment.jsx b/src/components/IOC/AdministerUndeployment/AdministerUndeployment.jsx
index 296bb4f15d60ae220ae10267e62a45ccccaeed29..c2873efc93dafa0dd8f3ad63a7dbdf0c493a19b8 100644
--- a/src/components/IOC/AdministerUndeployment/AdministerUndeployment.jsx
+++ b/src/components/IOC/AdministerUndeployment/AdministerUndeployment.jsx
@@ -10,10 +10,10 @@ import {
 } from "@mui/material";
 import { ConfirmationDialog, useAPIMethod } from "@ess-ics/ce-ui-common";
 import Alert from "@mui/material/Alert";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 import { apiContext } from "../../../api/DeployApi";
 
-export default function AdministerUndeployment({ ioc, buttonDisabled }) {
+export const AdministerUndeployment = ({ ioc, buttonDisabled }) => {
   const navigate = useNavigate();
 
   // for the dialog
@@ -156,4 +156,4 @@ export default function AdministerUndeployment({ ioc, buttonDisabled }) {
       </>
     </AccessControl>
   );
-}
+};
diff --git a/src/components/IOC/AdministerUndeployment/index.js b/src/components/IOC/AdministerUndeployment/index.js
index fe2a4e6b6329fdcd86bd6465a41386717eafb621..2a1e02bf056cb81d8604fb9667a63e8eed380ade 100644
--- a/src/components/IOC/AdministerUndeployment/index.js
+++ b/src/components/IOC/AdministerUndeployment/index.js
@@ -1,4 +1,3 @@
-import AdministerUndeployment from "./AdministerUndeployment";
+import { AdministerUndeployment } from "./AdministerUndeployment";
 
 export { AdministerUndeployment };
-export default AdministerUndeployment;
diff --git a/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.jsx b/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.jsx
index 0208f5ba0768b9f1044446dc99e9c59e5f69151e..ed1335c99ea028f6e5870e1c6d16c244f1337872 100644
--- a/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.jsx
+++ b/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.jsx
@@ -1,5 +1,5 @@
 import { useState, useEffect, useCallback, useContext, useMemo } from "react";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 import { ConfirmationDialog, useAPIMethod } from "@ess-ics/ce-ui-common";
 import {
   Box,
@@ -15,13 +15,13 @@ import {
 import { useTypingTimer } from "../../common/SearchBoxFilter/TypingTimer";
 import { apiContext } from "../../../api/DeployApi";
 
-export default function ChangeHostAdmin({
+export const ChangeHostAdmin = ({
   ioc,
   getIOC,
   resetTab,
   buttonDisabled,
   setButtonDisabled
-}) {
+}) => {
   const initHost = useMemo(
     () => ({
       fqdn: ioc.activeDeployment.host.fqdn,
@@ -246,4 +246,4 @@ export default function ChangeHostAdmin({
       </AccessControl>
     </>
   );
-}
+};
diff --git a/src/components/IOC/ChangeHostAdmin/index.js b/src/components/IOC/ChangeHostAdmin/index.js
index 82c5de125101a060f979ccc118cea8a328f708df..fb1c092fe95c5326bba0eb04a46d8f819e853a93 100644
--- a/src/components/IOC/ChangeHostAdmin/index.js
+++ b/src/components/IOC/ChangeHostAdmin/index.js
@@ -1,4 +1,3 @@
-import ChangeHostAdmin from "./ChangeHostAdmin";
+import { ChangeHostAdmin } from "./ChangeHostAdmin";
 
 export { ChangeHostAdmin };
-export default ChangeHostAdmin;
diff --git a/src/components/IOC/IOCAdmin/IOCAdmin.jsx b/src/components/IOC/IOCAdmin/IOCAdmin.jsx
index a574f48e013b46f67f134cb8870e8b66cdf416f7..253d7c133d29248057cb5c91f427eba3c5846f69 100644
--- a/src/components/IOC/IOCAdmin/IOCAdmin.jsx
+++ b/src/components/IOC/IOCAdmin/IOCAdmin.jsx
@@ -1,15 +1,15 @@
-import AdministerUndeployment from "../AdministerUndeployment";
-import IOCDelete from "../IOCDelete";
-import IOCDetailAdmin from "../IOCDetailAdmin";
-import ChangeHostAdmin from "../ChangeHostAdmin";
+import { AdministerUndeployment } from "../AdministerUndeployment";
+import { IOCDelete } from "../IOCDelete";
+import { IOCDetailAdmin } from "../IOCDetailAdmin";
+import { ChangeHostAdmin } from "../ChangeHostAdmin";
 
-export default function IOCAdmin({
+export const IOCAdmin = ({
   ioc,
   getIOC,
   resetTab,
   buttonDisabled,
   setButtonDisabled
-}) {
+}) => {
   return (
     <>
       <IOCDetailAdmin
@@ -39,4 +39,4 @@ export default function IOCAdmin({
       />
     </>
   );
-}
+};
diff --git a/src/components/IOC/IOCAdmin/index.js b/src/components/IOC/IOCAdmin/index.js
index 86b22226d82cd7962adddcef8ac7600ca80de9bc..cfd069c6f2bb6a34f93897bb5c67596b8db3e1eb 100644
--- a/src/components/IOC/IOCAdmin/index.js
+++ b/src/components/IOC/IOCAdmin/index.js
@@ -1,4 +1,3 @@
-import IOCAdmin from "./IOCAdmin";
+import { IOCAdmin } from "./IOCAdmin";
 
 export { IOCAdmin };
-export default IOCAdmin;
diff --git a/src/components/IOC/IOCDelete/IOCDelete.jsx b/src/components/IOC/IOCDelete/IOCDelete.jsx
index 3aa06ac21401ac14c8a2f4f8bf0eac64a5bacc8d..15fa9fef47909dcada58164872693f97633db4f3 100644
--- a/src/components/IOC/IOCDelete/IOCDelete.jsx
+++ b/src/components/IOC/IOCDelete/IOCDelete.jsx
@@ -4,10 +4,10 @@ import { useCustomSnackbar } from "../../common/snackbar";
 import { Box, Button, Grid, Tooltip, Typography } from "@mui/material";
 import { ConfirmDangerActionDialog, useAPIMethod } from "@ess-ics/ce-ui-common";
 import Alert from "@mui/material/Alert";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 import { apiContext } from "../../../api/DeployApi";
 
-export default function IOCDelete({ ioc, buttonDisabled, setButtonDisabled }) {
+export const IOCDelete = ({ ioc, buttonDisabled, setButtonDisabled }) => {
   const navigate = useNavigate();
   const showSnackBar = useCustomSnackbar();
 
@@ -147,4 +147,4 @@ export default function IOCDelete({ ioc, buttonDisabled, setButtonDisabled }) {
       </Box>
     </>
   );
-}
+};
diff --git a/src/components/IOC/IOCDelete/index.js b/src/components/IOC/IOCDelete/index.js
index a2d977a008636503ea3f72a671124b41009ff881..8aee2484c90b9aec0c08727ba5410a05c3f6d2f5 100644
--- a/src/components/IOC/IOCDelete/index.js
+++ b/src/components/IOC/IOCDelete/index.js
@@ -1,4 +1,3 @@
-import IOCDelete from "./IOCDelete";
+import { IOCDelete } from "./IOCDelete";
 
 export { IOCDelete };
-export default IOCDelete;
diff --git a/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.jsx b/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.jsx
index 5b07764c00de67dd4acb4c27e00b7236599299e6..65e5d081ab1d181f5dcd8185f2e623ab931dcbaa 100644
--- a/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.jsx
+++ b/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.jsx
@@ -11,7 +11,7 @@ import {
   Alert
 } from "@mui/material";
 import { useTypingTimer } from "../../common/SearchBoxFilter/TypingTimer";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 import { apiContext } from "../../../api/DeployApi";
 
 const createRequestParams = (query) => {
@@ -20,13 +20,13 @@ const createRequestParams = (query) => {
   };
 };
 
-export default function IOCDetailAdmin({
+export const IOCDetailAdmin = ({
   ioc,
   getIOC,
   resetTab,
   buttonDisabled,
   setButtonDisabled
-}) {
+}) => {
   const [gitId, setGitId] = useState(ioc.gitProjectId);
   const [nameQuery, onNameKeyUp] = useTypingTimer({ interval: 500 });
   const [repoQuery, onRepoKeyUp] = useTypingTimer({ interval: 500 });
@@ -346,4 +346,4 @@ export default function IOCDetailAdmin({
       </Box>
     </>
   );
-}
+};
diff --git a/src/components/IOC/IOCDetailAdmin/index.js b/src/components/IOC/IOCDetailAdmin/index.js
index ceb065fd0e8684e1afda261b56fdba9f9d453b89..2e05ebf7d61172910a0d52c1ba1a963d887ee8f5 100644
--- a/src/components/IOC/IOCDetailAdmin/index.js
+++ b/src/components/IOC/IOCDetailAdmin/index.js
@@ -1,4 +1,3 @@
-import IOCDetailAdmin from "./IOCDetailAdmin";
+import { IOCDetailAdmin } from "./IOCDetailAdmin";
 
 export { IOCDetailAdmin };
-export default IOCDetailAdmin;
diff --git a/src/components/IOC/IOCDetails/IOCDetails.jsx b/src/components/IOC/IOCDetails/IOCDetails.jsx
index 79f7269af2c1a891d2899d99c2a75c25a4e02c6a..c9289725e92c9de177cf8977640cd1176d380587 100644
--- a/src/components/IOC/IOCDetails/IOCDetails.jsx
+++ b/src/components/IOC/IOCDetails/IOCDetails.jsx
@@ -7,7 +7,7 @@ import {
   AlertBannerList
 } from "@ess-ics/ce-ui-common";
 import { IOCStatus } from "../IOCStatus";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 
 const defaultSubset = ({
   name,
diff --git a/src/components/IOC/IOCLiveStatus/IOCLiveStatus.jsx b/src/components/IOC/IOCLiveStatus/IOCLiveStatus.jsx
index 73698a33eeedc13babe69d5c2296534a8d5524e1..6201c5f6603a30e061b6f0a0b74e6df8af98991b 100644
--- a/src/components/IOC/IOCLiveStatus/IOCLiveStatus.jsx
+++ b/src/components/IOC/IOCLiveStatus/IOCLiveStatus.jsx
@@ -9,7 +9,7 @@ import { IOCDetails } from "../IOCDetails";
 import { LokiPanel } from "../../common/Loki/LokiPanel";
 import { RecordSearch } from "../../records/RecordSearch";
 import { GitRefLink } from "../../common/Git/GitRefLink";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 import { useSearchParams } from "react-router-dom";
 
 export function IOCLiveStatus({ ioc }) {
diff --git a/src/components/IOC/IOCManage/IOCManage.jsx b/src/components/IOC/IOCManage/IOCManage.jsx
index 87f127ba0c2c3f7d15c15e3523d764e589533eb8..d49ffad3e90604b7e6acd8688228a0a9ae49526d 100644
--- a/src/components/IOC/IOCManage/IOCManage.jsx
+++ b/src/components/IOC/IOCManage/IOCManage.jsx
@@ -9,7 +9,7 @@ import {
   ExternalLink,
   InternalLink
 } from "@ess-ics/ce-ui-common";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 import { DeploymentStatus } from "../../../api/DataTypes";
 import { IOCService } from "../IOCService";
 import { JobTable } from "../../Job";
diff --git a/src/components/IOC/IOCService/IOCService.jsx b/src/components/IOC/IOCService/IOCService.jsx
index dfb89e1224b58452338eda7187ca82e609ac09b2..72d5e106206cf48a4ebe5c910ddcb646a3ac0e01 100644
--- a/src/components/IOC/IOCService/IOCService.jsx
+++ b/src/components/IOC/IOCService/IOCService.jsx
@@ -9,7 +9,7 @@ import { useState, useEffect, useCallback } from "react";
 import { ConfirmationDialog } from "@ess-ics/ce-ui-common";
 import Alert from "@mui/material/Alert";
 import { initRequestParams } from "../../common/Helper";
-import AccessControl from "../../auth/AccessControl";
+import { AccessControl } from "../../auth/AccessControl";
 import { useNavigate } from "react-router-dom";
 import { useStartJobMutation } from "../../../store/deployApi";
 import { getErrorMessage } from "../../common/Alerts/AlertsData";
diff --git a/src/components/IOC/IOCTable/IOCTable.jsx b/src/components/IOC/IOCTable/IOCTable.jsx
index 575442952d146cf781b7146e8e9e23a4039d00b1..26c289b17413236f640b71ca1d438801f53eb7fb 100644
--- a/src/components/IOC/IOCTable/IOCTable.jsx
+++ b/src/components/IOC/IOCTable/IOCTable.jsx
@@ -134,13 +134,13 @@ function createTableRowForExploreIocs(ioc) {
   };
 }
 
-export function IOCTable({
+export const IOCTable = ({
   iocs,
   rowType = "explore",
   loading,
   pagination,
   onPage
-}) {
+}) => {
   const tableTypeSpecifics = {
     host: [hostDetailsColumns, createTableRowForHostDetails],
     explore: [exploreIocsColumns, createTableRowForExploreIocs]
@@ -159,4 +159,4 @@ export function IOCTable({
       disableHover
     />
   );
-}
+};
diff --git a/src/components/IOC/IOCTable/index.js b/src/components/IOC/IOCTable/index.js
index ff82ea636c3b3d2018b98fc018633381d59c8f03..67893b41cec05f83c4b542a83cb90bd7a623657c 100644
--- a/src/components/IOC/IOCTable/index.js
+++ b/src/components/IOC/IOCTable/index.js
@@ -1,4 +1,3 @@
 import { IOCTable } from "./IOCTable";
 
 export { IOCTable };
-export default IOCTable;
diff --git a/src/components/auth/AccessControl/AccessControl.jsx b/src/components/auth/AccessControl/AccessControl.jsx
index 27511dc61c25ccf122efa31bd8e7283a2798f1ab..123469628f57377b0fadb5ed7c1b61595685f30c 100644
--- a/src/components/auth/AccessControl/AccessControl.jsx
+++ b/src/components/auth/AccessControl/AccessControl.jsx
@@ -1,6 +1,6 @@
 import { useContext } from "react";
 import { userContext } from "@ess-ics/ce-ui-common";
-import AccessDenied from "../AccessDenied";
+import { AccessDenied } from "../AccessDenied";
 
 const checkPermissions = (userRoles, allowedRoles) => {
   if (allowedRoles.length === 0) {
@@ -22,12 +22,12 @@ const checkUser = (user, userRoles, allowedUsersWithRoles) => {
   );
 };
 
-export default function AccessControl({
+export const AccessControl = ({
   allowedRoles,
   allowedUsersWithRoles,
   children,
   renderNoAccess
-}) {
+}) => {
   const { user, userRoles } = useContext(userContext);
 
   const permitted =
@@ -40,4 +40,4 @@ export default function AccessControl({
     return <AccessDenied />;
   }
   return renderNoAccess();
-}
+};
diff --git a/src/components/auth/AccessControl/index.js b/src/components/auth/AccessControl/index.js
index 1b9542b384d2bc6695ac9d7daae72a91762d045b..cfe914a9c3a1c07f3f658e34a98c046a508035ad 100644
--- a/src/components/auth/AccessControl/index.js
+++ b/src/components/auth/AccessControl/index.js
@@ -1,4 +1,3 @@
-import AccessControl from "./AccessControl";
+import { AccessControl } from "./AccessControl";
 
 export { AccessControl };
-export default AccessControl;
diff --git a/src/components/auth/AccessDenied/AccessDenied.jsx b/src/components/auth/AccessDenied/AccessDenied.jsx
index 644053bc3302203d2e7b1c6f6a2c613151354e0d..22f41e48a1aa12f440c8afab6f09f3d0216c62bc 100644
--- a/src/components/auth/AccessDenied/AccessDenied.jsx
+++ b/src/components/auth/AccessDenied/AccessDenied.jsx
@@ -1,7 +1,7 @@
 import { ServerErrorPage } from "@ess-ics/ce-ui-common";
 import env from "../../../config/env";
 
-export default function AccessDenied() {
+export const AccessDenied = () => {
   return (
     <ServerErrorPage
       message="You do not have permission to access this page. Please contact an administrator to request access"
@@ -9,4 +9,4 @@ export default function AccessDenied() {
       supportHref={env.SUPPORT_URL}
     />
   );
-}
+};
diff --git a/src/components/auth/AccessDenied/index.js b/src/components/auth/AccessDenied/index.js
index 69a86dc008f4fd544140c3724674cc5708deb3ee..e07b1c4ceace5c92b6acc1c7171ab35eda69f4c8 100644
--- a/src/components/auth/AccessDenied/index.js
+++ b/src/components/auth/AccessDenied/index.js
@@ -1,4 +1,3 @@
-import AccessDenied from "./AccessDenied";
+import { AccessDenied } from "./AccessDenied";
 
 export { AccessDenied };
-export default AccessDenied;
diff --git a/src/components/auth/TokenRenew/TokenRenew.jsx b/src/components/auth/TokenRenew/TokenRenew.jsx
index 7524be8fddff59e90ae89a00efca777027f3f5a9..833e451c3175fc9937b3b0925e80506c0678f62f 100644
--- a/src/components/auth/TokenRenew/TokenRenew.jsx
+++ b/src/components/auth/TokenRenew/TokenRenew.jsx
@@ -3,7 +3,7 @@ import { apiContext } from "../../../api/DeployApi";
 import { userContext, useAPIMethod, usePolling } from "@ess-ics/ce-ui-common";
 import env from "../../../config/env";
 
-export default function TokenRenew() {
+export const TokenRenew = () => {
   const { user } = useContext(userContext);
 
   const client = useContext(apiContext);
@@ -29,4 +29,4 @@ export default function TokenRenew() {
   usePolling(renewTokenWhenLoggedIn, loading, env.TOKEN_RENEW_INTERVAL, abort);
 
   return null;
-}
+};
diff --git a/src/components/auth/TokenRenew/index.js b/src/components/auth/TokenRenew/index.js
index 8c42ce86e53e924f4bcff4ce15bab929376e4e69..f5e3069c366becf0b4c3fbc80c0a08487161e5d5 100644
--- a/src/components/auth/TokenRenew/index.js
+++ b/src/components/auth/TokenRenew/index.js
@@ -1,4 +1,3 @@
-import TokenRenew from "./TokenRenew";
+import { TokenRenew } from "./TokenRenew";
 
 export { TokenRenew };
-export default TokenRenew;
diff --git a/src/components/common/Popover/index.js b/src/components/common/Popover/index.js
index 7dca380e9e550b3b1d46b9762c1fe3183d0bed9a..0ecb05ccfc6243b9e452d76665c3e29617d6de98 100644
--- a/src/components/common/Popover/index.js
+++ b/src/components/common/Popover/index.js
@@ -1,4 +1,3 @@
 import { Popover } from "./Popover";
 
 export { Popover };
-export default Popover;
diff --git a/src/components/common/Status/Status.jsx b/src/components/common/Status/Status.jsx
index 9c45ef850dc8b12169cea31ea5e72fb68bc578fe..8d26d90094b4f89092dfea0944ce606e6a74ec6c 100644
--- a/src/components/common/Status/Status.jsx
+++ b/src/components/common/Status/Status.jsx
@@ -1,6 +1,6 @@
 import { useState, useEffect } from "react";
 import { LabeledIcon } from "@ess-ics/ce-ui-common";
-import Popover from "../../common/Popover";
+import { Popover } from "../../common/Popover";
 import { object, bool, array, func } from "prop-types";
 import { useTheme, Skeleton } from "@mui/material";
 import { PlayCircleFilled, PauseCircleFilled } from "@mui/icons-material";
diff --git a/src/components/navigation/Menu/MenuDrawer.jsx b/src/components/navigation/Menu/MenuDrawer.jsx
index 4bb4efc619c189ad95b72105393cb9d90a8205b8..65365f246f8668e3860f73759b3ebf6510111cce 100644
--- a/src/components/navigation/Menu/MenuDrawer.jsx
+++ b/src/components/navigation/Menu/MenuDrawer.jsx
@@ -1,5 +1,5 @@
 import { styled } from "@mui/material/styles";
-import clsx from "clsx";
+import { clsx } from "clsx";
 import {
   Container,
   Drawer,
diff --git a/src/components/navigation/Menu/index.js b/src/components/navigation/Menu/index.js
index 371073860b6bb3b5137c4b6cb5944c1f7e83a29f..19f7df62a8f20303033d1e7b66c492b8f9712570 100644
--- a/src/components/navigation/Menu/index.js
+++ b/src/components/navigation/Menu/index.js
@@ -1,4 +1,3 @@
 import { MenuDrawer } from "./MenuDrawer";
 
 export { MenuDrawer };
-export default MenuDrawer;
diff --git a/src/components/navigation/NavigationMenu/CreateIOCButton.jsx b/src/components/navigation/NavigationMenu/CreateIOCButton.jsx
index b531ab33f177965b6fc4dff4bc0df8f6fae161ff..55c5fba184d752a7e15791a45a8bfa435decde52 100644
--- a/src/components/navigation/NavigationMenu/CreateIOCButton.jsx
+++ b/src/components/navigation/NavigationMenu/CreateIOCButton.jsx
@@ -2,7 +2,7 @@ import { useContext } from "react";
 import { userContext, IconMenuButton } from "@ess-ics/ce-ui-common";
 import { useNavigate } from "react-router-dom";
 
-export function CreateIOCButton() {
+export const CreateIOCButton = () => {
   const { user } = useContext(userContext);
   const navigate = useNavigate();
 
@@ -16,4 +16,4 @@ export function CreateIOCButton() {
   };
 
   return user ? <IconMenuButton {...iconMenuButtonProps} /> : null;
-}
+};
diff --git a/src/components/navigation/NavigationMenu/LoginControls.jsx b/src/components/navigation/NavigationMenu/LoginControls.jsx
index 77d58a6853af329f355b3c360d758a51ef0b9916..066e67fc7bfe88423d5c2dc51bd04404613fa579 100644
--- a/src/components/navigation/NavigationMenu/LoginControls.jsx
+++ b/src/components/navigation/NavigationMenu/LoginControls.jsx
@@ -14,7 +14,7 @@ const propTypes = {
   user: string
 };
 
-export function ProfileMenu({ user }) {
+export const ProfileMenu = ({ user }) => {
   const { userRoles, logout } = useContext(userContext);
   const navigate = useNavigate();
 
@@ -66,9 +66,9 @@ export function ProfileMenu({ user }) {
   };
 
   return <IconMenuButton {...profileMenuProps} />;
-}
+};
 
-export function LoginControls() {
+export const LoginControls = () => {
   const [loginFormOpen, setLoginFormOpen] = useState(false);
   const { user, login, loginError, resetLoginError } = useContext(userContext);
   const userRef = useRef(user);
@@ -116,6 +116,6 @@ export function LoginControls() {
       />
     </>
   );
-}
+};
 
 ProfileMenu.propTypes = propTypes.menuListItem;
diff --git a/src/components/navigation/NavigationMenu/NavigationMenu.jsx b/src/components/navigation/NavigationMenu/NavigationMenu.jsx
index f970a82e2f9902f7d5d4b8043e5db67d0d67a5ca..2402dedd61e5b6a88788fe423b261d050fa1279f 100644
--- a/src/components/navigation/NavigationMenu/NavigationMenu.jsx
+++ b/src/components/navigation/NavigationMenu/NavigationMenu.jsx
@@ -92,7 +92,7 @@ const menuItemsAll = [
   makeLink("Log", "/jobs", <Assignment />)
 ];
 
-const NavigationMenu = ({ children }) => {
+export const NavigationMenu = ({ children }) => {
   const [drawerOpen, setDrawerOpen] = useState(false);
   const navigate = useNavigate();
   const goHome = () => {
@@ -175,5 +175,3 @@ const NavigationMenu = ({ children }) => {
     </GlobalAppBar>
   );
 };
-
-export default NavigationMenu;
diff --git a/src/components/navigation/NavigationMenu/index.js b/src/components/navigation/NavigationMenu/index.js
index e7d2ee6772578f7a99831510743a2ea0af349839..c8a03a5c0fa504fe4fbfa66c123bb9cce6feeb3b 100644
--- a/src/components/navigation/NavigationMenu/index.js
+++ b/src/components/navigation/NavigationMenu/index.js
@@ -1,4 +1,3 @@
-import NavigationMenu from "./NavigationMenu";
+import { NavigationMenu } from "./NavigationMenu";
 
 export { NavigationMenu };
-export default NavigationMenu;
diff --git a/src/components/navigation/NotFoundView/NotFoundView.tsx b/src/components/navigation/NotFoundView/NotFoundView.tsx
index 2440359881f43310e03539b41cdb55f3d39ec369..1571c4dbf7b0ef550d7fc8fdd0db7d7e00f2e7a6 100644
--- a/src/components/navigation/NotFoundView/NotFoundView.tsx
+++ b/src/components/navigation/NotFoundView/NotFoundView.tsx
@@ -11,7 +11,7 @@ interface NotFoundProps {
   status: string;
 }
 
-export default function NotFoundView({ message, status }: NotFoundProps) {
+export const NotFoundView = ({ message, status }: NotFoundProps) => {
   return (
     <RootPaper>
       <ServerErrorPage
@@ -21,7 +21,7 @@ export default function NotFoundView({ message, status }: NotFoundProps) {
       />
     </RootPaper>
   );
-}
+};
 
 NotFoundView.defaultProps = {
   status: "404"
diff --git a/src/components/navigation/NotFoundView/index.ts b/src/components/navigation/NotFoundView/index.ts
index b21b7fdb8314d6c5c2079c3e34e7ab0ecdbdc959..296f5c0dc78d62c3e8307b7a336d83cdfe33a863 100644
--- a/src/components/navigation/NotFoundView/index.ts
+++ b/src/components/navigation/NotFoundView/index.ts
@@ -1,4 +1,3 @@
-import NotFoundView from "./NotFoundView";
+import { NotFoundView } from "./NotFoundView";
 
 export { NotFoundView };
-export default NotFoundView;
diff --git a/src/mocks/AppHarness.jsx b/src/mocks/AppHarness.jsx
index 51b59a7c5ce3db47408ef8977287b62f71d84590..e9ee04aa8be5b595e15749475542f0b8ef0dc33a 100644
--- a/src/mocks/AppHarness.jsx
+++ b/src/mocks/AppHarness.jsx
@@ -3,7 +3,7 @@ import { Container, CssBaseline, StyledEngineProvider } from "@mui/material";
 import { ThemeProvider } from "@mui/material/styles";
 import { theme } from "../style/Theme";
 import { UserProvider } from "../api/UserProvider";
-import NavigationMenu from "../components/navigation/NavigationMenu";
+import { NavigationMenu } from "../components/navigation/NavigationMenu";
 import { MemoryRouter } from "react-router-dom";
 import { DeployAPIProvider } from "../api/APIProvider";
 import { TestUserProvider, UserImpersonator } from "./UserImpersonator";
diff --git a/src/stories/views/Navigation/NotFoundView.stories.jsx b/src/stories/views/Navigation/NotFoundView.stories.jsx
index 6863c39870aa732bb24e70bca3bf359b47d2ccdb..22f3139beb48b4725a00490f69c74e3ded9a3ec7 100644
--- a/src/stories/views/Navigation/NotFoundView.stories.jsx
+++ b/src/stories/views/Navigation/NotFoundView.stories.jsx
@@ -1,5 +1,5 @@
 import { AppHarness } from "../../../mocks/AppHarness";
-import NotFoundView from "../../../components/navigation/NotFoundView";
+import { NotFoundView } from "../../../components/navigation/NotFoundView";
 
 export default {
   title: "Views/Navigation/NotFoundView"
diff --git a/src/typings.d.ts b/src/typings.d.ts
index 054cc31cba38b72545e22f6628b0760db89e5965..0a50ac473539e7bfca7958e622f2a7355ccbe3ce 100644
--- a/src/typings.d.ts
+++ b/src/typings.d.ts
@@ -1,9 +1,9 @@
 declare module "@ess-ics/ce-ui-common";
 declare module "*.svg" {
-  import { FunctionComponent, SVGProps, SVGSVGElement } from "react";
+  import { FunctionComponent, SVGAttributes } from "react";
 
   export const ReactComponent: FunctionComponent<
-    SVGProps<SVGSVGElement> & { title?: string }
+    Element<SVGAttributes> & { title?: string }
   >;
   const content: string;
   export default content;
diff --git a/src/views/IOC/IOCDetailsAccessControl.jsx b/src/views/IOC/IOCDetailsAccessControl.jsx
index 7712fe25e924dcc86bebbc34e6971c2d4e20f5b0..c2e57ad01fcb1cf218a55ca3e98b8390f4ff6332 100644
--- a/src/views/IOC/IOCDetailsAccessControl.jsx
+++ b/src/views/IOC/IOCDetailsAccessControl.jsx
@@ -1,5 +1,5 @@
 import { RootPaper } from "@ess-ics/ce-ui-common";
-import AccessControl from "../../components/auth/AccessControl";
+import { AccessControl } from "../../components/auth/AccessControl";
 import { IOCDetailsContainer } from "./IOCDetailsContainer";
 import { useParams } from "react-router-dom";
 
diff --git a/src/views/IOC/IOCDetailsContainer.jsx b/src/views/IOC/IOCDetailsContainer.jsx
index b8e38f54673d1278b2aebf980e89419252fc6f76..c1aff22189744d6c85795d6de138141b9bc0c86e 100644
--- a/src/views/IOC/IOCDetailsContainer.jsx
+++ b/src/views/IOC/IOCDetailsContainer.jsx
@@ -1,7 +1,7 @@
 import { useEffect, useContext, useState, useMemo } from "react";
 import { IOCDetailsView } from "./IOCDetailsView";
 import { LinearProgress } from "@mui/material";
-import NotFoundView from "../../components/navigation/NotFoundView/NotFoundView";
+import { NotFoundView } from "../../components/navigation/NotFoundView/NotFoundView";
 import { onFetchEntityError } from "../../components/common/Helper";
 import { useAPIMethod } from "@ess-ics/ce-ui-common";
 import { apiContext } from "../../api/DeployApi";
diff --git a/src/views/IOC/IOCDetailsView.jsx b/src/views/IOC/IOCDetailsView.jsx
index 7e3da872fa09fa042ca964efafc1ef737f1e666a..98d8a0771ae1fc52e6bda2ab26c2c00d06dc0e99 100644
--- a/src/views/IOC/IOCDetailsView.jsx
+++ b/src/views/IOC/IOCDetailsView.jsx
@@ -4,7 +4,7 @@ import { useCallback, useContext, useEffect, useMemo, useState } from "react";
 import { IOCLiveStatus } from "../../components/IOC/IOCLiveStatus";
 import { IOCManage } from "../../components/IOC/IOCManage";
 import { useNavigate } from "react-router-dom";
-import IOCAdmin from "../../components/IOC/IOCAdmin";
+import { IOCAdmin } from "../../components/IOC/IOCAdmin";
 import {
   applicationTitle,
   initRequestParams
diff --git a/src/views/IOC/IOCListView.tsx b/src/views/IOC/IOCListView.tsx
index 1d5d8ed1e8bbcbe5411024d42fd7e8c1b0f419b8..b7acf9f18788fa9b3c9eb1f04ae008a510b3f83f 100644
--- a/src/views/IOC/IOCListView.tsx
+++ b/src/views/IOC/IOCListView.tsx
@@ -14,7 +14,7 @@ import { useSearchParams } from "react-router-dom";
 import { GlobalAppBarContext, OnPageParams } from "../../types/common";
 import { ApiAlertError } from "../../components/common/Alerts/ApiAlertError";
 import { Container, Grid, Tabs, Tab } from "@mui/material";
-import IOCTable from "../../components/IOC/IOCTable";
+import { IOCTable } from "../../components/IOC/IOCTable";
 import { ROWS_PER_PAGE } from "../../constants";
 
 export const IOCListView = () => {
diff --git a/src/views/UserPage/UserDetailsAccessControl.jsx b/src/views/UserPage/UserDetailsAccessControl.jsx
index fc47f6c625757760ce88e055a317cba92a1777a3..a919e3202e3436bbc0f5ddcda650c03e32fe8907 100644
--- a/src/views/UserPage/UserDetailsAccessControl.jsx
+++ b/src/views/UserPage/UserDetailsAccessControl.jsx
@@ -1,5 +1,5 @@
 import { RootPaper } from "@ess-ics/ce-ui-common";
-import AccessControl from "../../components/auth/AccessControl";
+import { AccessControl } from "../../components/auth/AccessControl";
 import { UserDetailsContainer } from "./UserDetailsContainer";
 
 export function UserDetailsAccessControl() {
diff --git a/src/views/UserPage/UserDetailsContainer.jsx b/src/views/UserPage/UserDetailsContainer.jsx
index df888bda20530f65e0f8a997b2d57db42ec7efb2..7ef664c58466f0c40c90d7c256fd194f220f95b9 100644
--- a/src/views/UserPage/UserDetailsContainer.jsx
+++ b/src/views/UserPage/UserDetailsContainer.jsx
@@ -1,7 +1,7 @@
 import { useContext, useEffect, useMemo, useState } from "react";
 import { UserPageView } from "./UserPageView";
 import { LinearProgress } from "@mui/material";
-import NotFoundView from "../../components/navigation/NotFoundView/NotFoundView";
+import { NotFoundView } from "../../components/navigation/NotFoundView/NotFoundView";
 import { useParams } from "react-router-dom";
 import { userContext, useAPIMethod } from "@ess-ics/ce-ui-common";
 import { apiContext } from "../../api/DeployApi";
diff --git a/src/views/host/details/HostDetailsAccessControl.jsx b/src/views/host/details/HostDetailsAccessControl.jsx
index 2bb2fbaaef6d106b0d7aa78e30c0c0ccc8268e03..5f6ba4cb96f2921e7053bbb3558e4be54b3984d7 100644
--- a/src/views/host/details/HostDetailsAccessControl.jsx
+++ b/src/views/host/details/HostDetailsAccessControl.jsx
@@ -1,5 +1,5 @@
 import { RootPaper } from "@ess-ics/ce-ui-common";
-import AccessControl from "../../../components/auth/AccessControl";
+import { AccessControl } from "../../../components/auth/AccessControl";
 import { HostDetailsContainer } from "./HostDetailsContainer";
 import { useParams } from "react-router-dom";
 
diff --git a/src/views/host/details/HostDetailsContainer.jsx b/src/views/host/details/HostDetailsContainer.jsx
index 6d066eef08ab2e893e9e7d3a08733843f9d43f9d..5a39b086de45b4598d4786b4d985516239fb6b68 100644
--- a/src/views/host/details/HostDetailsContainer.jsx
+++ b/src/views/host/details/HostDetailsContainer.jsx
@@ -2,7 +2,7 @@ import { useState, useMemo, useContext, useEffect } from "react";
 import { HostDetailsView } from "./HostDetailsView";
 import { LinearProgress } from "@mui/material";
 import { onFetchEntityError } from "../../../components/common/Helper";
-import NotFoundView from "../../../components/navigation/NotFoundView/NotFoundView";
+import { NotFoundView } from "../../../components/navigation/NotFoundView/NotFoundView";
 import { apiContext } from "../../../api/DeployApi";
 import { useAPIMethod } from "@ess-ics/ce-ui-common";
 
diff --git a/src/views/host/details/HostDetailsView.jsx b/src/views/host/details/HostDetailsView.jsx
index 325ea578c7ac99172fd0c2581d909c8bfb0d8048..3150e91ef4b6d6ad269c31f24f42f2838279d59b 100644
--- a/src/views/host/details/HostDetailsView.jsx
+++ b/src/views/host/details/HostDetailsView.jsx
@@ -11,7 +11,7 @@ import {
 import { LokiPanel } from "../../../components/common/Loki/LokiPanel";
 import { useNavigate } from "react-router-dom";
 import { applicationTitle } from "../../../components/common/Helper";
-import AccessControl from "../../../components/auth/AccessControl";
+import { AccessControl } from "../../../components/auth/AccessControl";
 import { HostDetailsTable } from "./HostDetailsTable";
 import { HostStatus } from "../../../components/host/HostStatus";
 import { HostJobsSection } from "./HostJobsSection";
diff --git a/src/views/host/details/HostIocSection.jsx b/src/views/host/details/HostIocSection.jsx
index a19228f2ea8edef8ac3f50d55f2a6b5f0603f65d..3e6402cb198c3cfd9e7c7f2abebc46acfaf32c18 100644
--- a/src/views/host/details/HostIocSection.jsx
+++ b/src/views/host/details/HostIocSection.jsx
@@ -1,5 +1,5 @@
 import { useEffect, useContext, useCallback } from "react";
-import IOCTable from "../../../components/IOC/IOCTable";
+import { IOCTable } from "../../../components/IOC/IOCTable";
 import { string } from "prop-types";
 import { apiContext } from "../../../api/DeployApi";
 import { Typography } from "@mui/material";
diff --git a/src/views/jobs/JobDetailsAccessControl.jsx b/src/views/jobs/JobDetailsAccessControl.jsx
index b60bfd21ce7d820cc529526a2760bdc9ccd42396..67810e66483bd24acbd2ac13aa4fcb55a1b6dfd0 100644
--- a/src/views/jobs/JobDetailsAccessControl.jsx
+++ b/src/views/jobs/JobDetailsAccessControl.jsx
@@ -1,5 +1,5 @@
 import { RootPaper } from "@ess-ics/ce-ui-common";
-import AccessControl from "../../components/auth/AccessControl";
+import { AccessControl } from "../../components/auth/AccessControl";
 import { JobDetailsContainer } from "./JobDetailsContainer";
 import { useParams } from "react-router-dom";
 
diff --git a/src/views/jobs/JobDetailsContainer.jsx b/src/views/jobs/JobDetailsContainer.jsx
index 4bc8bc56c99d37d5ea973d20df8cfa43863f44a8..52a92bcff69cb50298a72d63067ddbc7917a8402 100644
--- a/src/views/jobs/JobDetailsContainer.jsx
+++ b/src/views/jobs/JobDetailsContainer.jsx
@@ -1,7 +1,7 @@
 import { useState, useContext, useMemo, useEffect } from "react";
 import { JobDetailsView } from "./JobDetailsView";
 import { LinearProgress } from "@mui/material";
-import NotFoundView from "../../components/navigation/NotFoundView/NotFoundView";
+import { NotFoundView } from "../../components/navigation/NotFoundView/NotFoundView";
 import { onFetchEntityError } from "../../components/common/Helper";
 import { useAPIMethod, usePolling } from "@ess-ics/ce-ui-common";
 import { apiContext } from "../../api/DeployApi";
diff --git a/src/views/jobs/JobLogAccessControl.jsx b/src/views/jobs/JobLogAccessControl.jsx
index 8cc5b5d725db4bc99914dc881752a3ebab3c69fb..76ee9850e96ceca4f35a12d7e0cfaf4569bacd3c 100644
--- a/src/views/jobs/JobLogAccessControl.jsx
+++ b/src/views/jobs/JobLogAccessControl.jsx
@@ -1,5 +1,5 @@
 import { useContext, useEffect } from "react";
-import AccessControl from "../../components/auth/AccessControl";
+import { AccessControl } from "../../components/auth/AccessControl";
 import { GlobalAppBarContext } from "@ess-ics/ce-ui-common";
 import { JobListView } from "./JobListView";
 import { applicationTitle } from "../../components/common/Helper";
diff --git a/src/views/records/RecordDetailsView.jsx b/src/views/records/RecordDetailsView.jsx
index d6340fba41f610e9c58066e7bb2195ca61edfa36..ea2895cee9e72b1db9d7fd72ff58faae4996dd55 100644
--- a/src/views/records/RecordDetailsView.jsx
+++ b/src/views/records/RecordDetailsView.jsx
@@ -16,7 +16,7 @@ import {
   onFetchEntityError
 } from "../../components/common/Helper";
 import { useParams, useNavigate } from "react-router-dom";
-import NotFoundView from "../../components/navigation/NotFoundView/NotFoundView";
+import { NotFoundView } from "../../components/navigation/NotFoundView/NotFoundView";
 
 import { apiContext } from "../../api/DeployApi";