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";