diff --git a/client/src/app/App.tsx b/client/src/app/App.tsx
index ff436c568f..6b7409777d 100644
--- a/client/src/app/App.tsx
+++ b/client/src/app/App.tsx
@@ -3,7 +3,7 @@ import { BrowserRouter } from "react-router-dom";
import { AppRoutes } from "./Routes";
import { DefaultLayout } from "./layout";
-import { NotificationsProvider } from "./shared/notifications-context";
+import { NotificationsProvider } from "./components/NotificationsContext";
import "@patternfly/patternfly/patternfly.css";
import "@patternfly/patternfly/patternfly-addons.css";
diff --git a/client/src/app/Routes.tsx b/client/src/app/Routes.tsx
index 19e6502858..3b8296cd05 100644
--- a/client/src/app/Routes.tsx
+++ b/client/src/app/Routes.tsx
@@ -1,17 +1,16 @@
import React, { lazy, Suspense } from "react";
import { Switch, Redirect, useLocation } from "react-router-dom";
-import { AppPlaceholder } from "@app/shared/components";
-
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
import { RepositoriesGit } from "./pages/repositories/Git";
import { RepositoriesMvn } from "./pages/repositories/Mvn";
import { RepositoriesSvn } from "./pages/repositories/Svn";
import { Paths } from "@app/Paths";
import { ApplicationAssessment } from "./pages/applications/application-assessment/application-assessment";
-import { RouteWrapper } from "./common/RouteWrapper";
+import { RouteWrapper } from "./components/RouteWrapper";
import { adminRoles, devRoles } from "./rbac";
import { ErrorBoundary } from "react-error-boundary";
-import { ErrorFallback } from "@app/common/ErrorFallback";
+import { ErrorFallback } from "@app/components/ErrorFallback";
import { FEATURES_ENABLED } from "./FeatureFlags";
const Applications = lazy(() => import("./pages/applications"));
diff --git a/client/src/app/api/rest.ts b/client/src/app/api/rest.ts
index 5f0bd531d5..0bee530db9 100644
--- a/client/src/app/api/rest.ts
+++ b/client/src/app/api/rest.ts
@@ -52,7 +52,7 @@ import {
HubFile,
} from "./models";
import { QueryKey } from "@tanstack/react-query";
-import { serializeRequestParamsForHub } from "@app/shared/hooks/table-controls";
+import { serializeRequestParamsForHub } from "@app/hooks/table-controls";
// TACKLE_HUB
export const HUB = "/hub";
diff --git a/client/src/app/shared/components/app-placeholder/app-placeholder.tsx b/client/src/app/components/AppPlaceholder.tsx
similarity index 100%
rename from client/src/app/shared/components/app-placeholder/app-placeholder.tsx
rename to client/src/app/components/AppPlaceholder.tsx
diff --git a/client/src/app/shared/components/app-table/app-table.css b/client/src/app/components/AppTable.css
similarity index 100%
rename from client/src/app/shared/components/app-table/app-table.css
rename to client/src/app/components/AppTable.css
diff --git a/client/src/app/shared/components/app-table/app-table.tsx b/client/src/app/components/AppTable.tsx
similarity index 92%
rename from client/src/app/shared/components/app-table/app-table.tsx
rename to client/src/app/components/AppTable.tsx
index 401d6fcb37..98beabeb99 100644
--- a/client/src/app/shared/components/app-table/app-table.tsx
+++ b/client/src/app/components/AppTable.tsx
@@ -8,12 +8,12 @@ import {
TableProps,
} from "@patternfly/react-table/deprecated";
-import { StateNoData } from "./state-no-data";
-import { StateNoResults } from "./state-no-results";
-import { StateError } from "./state-error";
-import "./app-table.css";
+import { StateNoData } from "./StateNoData";
+import { StateNoResults } from "./StateNoResults";
+import { StateError } from "./StateError";
import { Application } from "@app/api/models";
-import { handlePropagatedRowClick } from "@app/shared/hooks/table-controls";
+import { handlePropagatedRowClick } from "@app/hooks/table-controls";
+import "./AppTable.css";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/shared/components/app-table-action-buttons/app-table-action-buttons.tsx b/client/src/app/components/AppTableActionButtons.tsx
similarity index 96%
rename from client/src/app/shared/components/app-table-action-buttons/app-table-action-buttons.tsx
rename to client/src/app/components/AppTableActionButtons.tsx
index 65eb4fc1d6..9e01ceaf72 100644
--- a/client/src/app/shared/components/app-table-action-buttons/app-table-action-buttons.tsx
+++ b/client/src/app/components/AppTableActionButtons.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { useTranslation } from "react-i18next";
import { Button, Flex, FlexItem } from "@patternfly/react-core";
import { applicationsWriteScopes, RBAC, RBAC_TYPE } from "@app/rbac";
-import { ConditionalTooltip } from "../ConditionalTooltip";
+import { ConditionalTooltip } from "./ConditionalTooltip";
export interface AppTableActionButtonsProps {
isDeleteEnabled?: boolean;
diff --git a/client/src/app/shared/components/app-table-with-controls/app-table-with-controls.tsx b/client/src/app/components/AppTableWithControls.tsx
similarity index 90%
rename from client/src/app/shared/components/app-table-with-controls/app-table-with-controls.tsx
rename to client/src/app/components/AppTableWithControls.tsx
index 1740762e8b..adf6751915 100644
--- a/client/src/app/shared/components/app-table-with-controls/app-table-with-controls.tsx
+++ b/client/src/app/components/AppTableWithControls.tsx
@@ -8,9 +8,9 @@ import {
ToolbarItemVariant,
} from "@patternfly/react-core";
-import { AppTable, IAppTableProps } from "../app-table/app-table";
-import { PaginationStateProps } from "@app/shared/hooks/useLegacyPaginationState";
-import { SimplePagination } from "../simple-pagination";
+import { AppTable, IAppTableProps } from "./AppTable";
+import { PaginationStateProps } from "@app/hooks/useLegacyPaginationState";
+import { SimplePagination } from "./SimplePagination";
export interface IAppTableWithControlsProps extends IAppTableProps {
count: number;
diff --git a/client/src/app/shared/containers/application-dependencies-form/application-dependencies-form.tsx b/client/src/app/components/ApplicationDependenciesFormContainer/ApplicationDependenciesForm.tsx
similarity index 96%
rename from client/src/app/shared/containers/application-dependencies-form/application-dependencies-form.tsx
rename to client/src/app/components/ApplicationDependenciesFormContainer/ApplicationDependenciesForm.tsx
index cbc7fd37ec..0c40ba4f97 100644
--- a/client/src/app/shared/containers/application-dependencies-form/application-dependencies-form.tsx
+++ b/client/src/app/components/ApplicationDependenciesFormContainer/ApplicationDependenciesForm.tsx
@@ -15,15 +15,15 @@ import {
TextContent,
} from "@patternfly/react-core";
-import { OptionWithValue } from "@app/shared/components";
+import { OptionWithValue } from "@app/components/SimpleSelect";
import { Application, ApplicationDependency } from "@app/api/models";
-import { FormContext } from "./form-context";
-import { SelectDependency } from "./select-dependency";
+import { FormContext } from "./FormContext";
+import { SelectDependency } from "./SelectDependency";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { useFetchApplications } from "@app/queries/applications";
-import useFetchApplicationDependencies from "@app/shared/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies";
+import useFetchApplicationDependencies from "@app/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies";
const northToStringFn = (value: ApplicationDependency) => value.from.name;
const southToStringFn = (value: ApplicationDependency) => value.to.name;
diff --git a/client/src/app/shared/containers/application-dependencies-form/form-context.tsx b/client/src/app/components/ApplicationDependenciesFormContainer/FormContext.tsx
similarity index 100%
rename from client/src/app/shared/containers/application-dependencies-form/form-context.tsx
rename to client/src/app/components/ApplicationDependenciesFormContainer/FormContext.tsx
diff --git a/client/src/app/shared/containers/application-dependencies-form/select-dependency.tsx b/client/src/app/components/ApplicationDependenciesFormContainer/SelectDependency.tsx
similarity index 97%
rename from client/src/app/shared/containers/application-dependencies-form/select-dependency.tsx
rename to client/src/app/components/ApplicationDependenciesFormContainer/SelectDependency.tsx
index 8b6b2449b9..9866b69570 100644
--- a/client/src/app/shared/containers/application-dependencies-form/select-dependency.tsx
+++ b/client/src/app/components/ApplicationDependenciesFormContainer/SelectDependency.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { useTranslation } from "react-i18next";
import { AxiosError } from "axios";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
import {
diff --git a/client/src/app/shared/containers/application-dependencies-form/index.tsx b/client/src/app/components/ApplicationDependenciesFormContainer/index.tsx
similarity index 78%
rename from client/src/app/shared/containers/application-dependencies-form/index.tsx
rename to client/src/app/components/ApplicationDependenciesFormContainer/index.tsx
index e717271184..8c8c240f53 100644
--- a/client/src/app/shared/containers/application-dependencies-form/index.tsx
+++ b/client/src/app/components/ApplicationDependenciesFormContainer/index.tsx
@@ -1,9 +1,9 @@
import React from "react";
-import { FormContextProvider } from "./form-context";
+import { FormContextProvider } from "./FormContext";
import {
ApplicationDependenciesFormProps,
ApplicationDependenciesForm,
-} from "./application-dependencies-form";
+} from "./ApplicationDependenciesForm";
export const ApplicationDependenciesFormContainer: React.FC<
ApplicationDependenciesFormProps
diff --git a/client/src/app/shared/components/breadcrumb-path/breadcrumb-path.tsx b/client/src/app/components/BreadCrumbPath.tsx
similarity index 100%
rename from client/src/app/shared/components/breadcrumb-path/breadcrumb-path.tsx
rename to client/src/app/components/BreadCrumbPath.tsx
diff --git a/client/src/app/shared/components/color/color.css b/client/src/app/components/Color.css
similarity index 100%
rename from client/src/app/shared/components/color/color.css
rename to client/src/app/components/Color.css
diff --git a/client/src/app/shared/components/color/color.tsx b/client/src/app/components/Color.tsx
similarity index 97%
rename from client/src/app/shared/components/color/color.tsx
rename to client/src/app/components/Color.tsx
index 65156451b5..ade978b26a 100644
--- a/client/src/app/shared/components/color/color.tsx
+++ b/client/src/app/components/Color.tsx
@@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next";
import { Split, SplitItem } from "@patternfly/react-core";
import { COLOR_NAMES_BY_HEX_VALUE } from "@app/Constants";
-import "./color.css";
+import "./Color.css";
export interface ColorProps {
hex: string;
diff --git a/client/src/app/shared/components/conditional-render/conditional-render.tsx b/client/src/app/components/ConditionalRender.tsx
similarity index 100%
rename from client/src/app/shared/components/conditional-render/conditional-render.tsx
rename to client/src/app/components/ConditionalRender.tsx
diff --git a/client/src/app/shared/components/ConditionalTooltip.tsx b/client/src/app/components/ConditionalTooltip.tsx
similarity index 100%
rename from client/src/app/shared/components/ConditionalTooltip.tsx
rename to client/src/app/components/ConditionalTooltip.tsx
diff --git a/client/src/app/shared/components/confirm-dialog/confirm-dialog.tsx b/client/src/app/components/ConfirmDialog.tsx
similarity index 100%
rename from client/src/app/shared/components/confirm-dialog/confirm-dialog.tsx
rename to client/src/app/components/ConfirmDialog.tsx
diff --git a/client/src/app/components/DefaultTargetImage.svg b/client/src/app/components/DefaultTargetImage.svg
deleted file mode 100644
index 9217cf7e59..0000000000
--- a/client/src/app/components/DefaultTargetImage.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/client/src/app/shared/components/empty-text-message/empty-text-message.tsx b/client/src/app/components/EmptyTextMessage.tsx
similarity index 100%
rename from client/src/app/shared/components/empty-text-message/empty-text-message.tsx
rename to client/src/app/components/EmptyTextMessage.tsx
diff --git a/client/src/app/common/ErrorFallback.tsx b/client/src/app/components/ErrorFallback.tsx
similarity index 95%
rename from client/src/app/common/ErrorFallback.tsx
rename to client/src/app/components/ErrorFallback.tsx
index 09ecb23eb5..dde8ab9e4b 100644
--- a/client/src/app/common/ErrorFallback.tsx
+++ b/client/src/app/components/ErrorFallback.tsx
@@ -9,7 +9,7 @@ import {
} from "@patternfly/react-core";
import React, { useEffect, useRef } from "react";
import UserNinjaIcon from "@patternfly/react-icons/dist/esm/icons/user-ninja-icon";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { useTranslation } from "react-i18next";
import { useHistory } from "react-router-dom";
diff --git a/client/src/app/shared/components/FilterToolbar/FilterControl.tsx b/client/src/app/components/FilterToolbar/FilterControl.tsx
similarity index 100%
rename from client/src/app/shared/components/FilterToolbar/FilterControl.tsx
rename to client/src/app/components/FilterToolbar/FilterControl.tsx
diff --git a/client/src/app/shared/components/FilterToolbar/FilterToolbar.tsx b/client/src/app/components/FilterToolbar/FilterToolbar.tsx
similarity index 100%
rename from client/src/app/shared/components/FilterToolbar/FilterToolbar.tsx
rename to client/src/app/components/FilterToolbar/FilterToolbar.tsx
diff --git a/client/src/app/shared/components/FilterToolbar/MultiselectFilterControl.tsx b/client/src/app/components/FilterToolbar/MultiselectFilterControl.tsx
similarity index 100%
rename from client/src/app/shared/components/FilterToolbar/MultiselectFilterControl.tsx
rename to client/src/app/components/FilterToolbar/MultiselectFilterControl.tsx
diff --git a/client/src/app/shared/components/FilterToolbar/SearchFilterControl.tsx b/client/src/app/components/FilterToolbar/SearchFilterControl.tsx
similarity index 100%
rename from client/src/app/shared/components/FilterToolbar/SearchFilterControl.tsx
rename to client/src/app/components/FilterToolbar/SearchFilterControl.tsx
diff --git a/client/src/app/shared/components/FilterToolbar/SelectFilterControl.tsx b/client/src/app/components/FilterToolbar/SelectFilterControl.tsx
similarity index 100%
rename from client/src/app/shared/components/FilterToolbar/SelectFilterControl.tsx
rename to client/src/app/components/FilterToolbar/SelectFilterControl.tsx
diff --git a/client/src/app/shared/components/FilterToolbar/index.ts b/client/src/app/components/FilterToolbar/index.ts
similarity index 100%
rename from client/src/app/shared/components/FilterToolbar/index.ts
rename to client/src/app/components/FilterToolbar/index.ts
diff --git a/client/src/app/shared/components/FilterToolbar/select-overrides.css b/client/src/app/components/FilterToolbar/select-overrides.css
similarity index 100%
rename from client/src/app/shared/components/FilterToolbar/select-overrides.css
rename to client/src/app/components/FilterToolbar/select-overrides.css
diff --git a/client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-group-controller.tsx b/client/src/app/components/HookFormPFFields/HookFormPFGroupController.tsx
similarity index 100%
rename from client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-group-controller.tsx
rename to client/src/app/components/HookFormPFFields/HookFormPFGroupController.tsx
diff --git a/client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-text-area.tsx b/client/src/app/components/HookFormPFFields/HookFormPFTextArea.tsx
similarity index 97%
rename from client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-text-area.tsx
rename to client/src/app/components/HookFormPFFields/HookFormPFTextArea.tsx
index b9a42973d5..291bc42611 100644
--- a/client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-text-area.tsx
+++ b/client/src/app/components/HookFormPFFields/HookFormPFTextArea.tsx
@@ -6,7 +6,7 @@ import {
HookFormPFGroupController,
BaseHookFormPFGroupControllerProps,
extractGroupControllerProps,
-} from "./hook-form-pf-group-controller";
+} from "./HookFormPFGroupController";
export type HookFormPFTextAreaProps<
TFieldValues extends FieldValues,
diff --git a/client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-text-input.tsx b/client/src/app/components/HookFormPFFields/HookFormPFTextInput.tsx
similarity index 97%
rename from client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-text-input.tsx
rename to client/src/app/components/HookFormPFFields/HookFormPFTextInput.tsx
index 49a80ee716..43d43f7c00 100644
--- a/client/src/app/shared/components/hook-form-pf-fields/hook-form-pf-text-input.tsx
+++ b/client/src/app/components/HookFormPFFields/HookFormPFTextInput.tsx
@@ -6,7 +6,7 @@ import {
extractGroupControllerProps,
HookFormPFGroupController,
BaseHookFormPFGroupControllerProps,
-} from "./hook-form-pf-group-controller";
+} from "./HookFormPFGroupController";
export type HookFormPFTextInputProps<
TFieldValues extends FieldValues,
diff --git a/client/src/app/components/HookFormPFFields/index.ts b/client/src/app/components/HookFormPFFields/index.ts
new file mode 100644
index 0000000000..03ce2a09fd
--- /dev/null
+++ b/client/src/app/components/HookFormPFFields/index.ts
@@ -0,0 +1,3 @@
+export * from "./HookFormPFGroupController";
+export * from "./HookFormPFTextInput";
+export * from "./HookFormPFTextArea";
diff --git a/client/src/app/shared/components/horizontal-nav/horizontal-nav.tsx b/client/src/app/components/HorizontalNav.tsx
similarity index 100%
rename from client/src/app/shared/components/horizontal-nav/horizontal-nav.tsx
rename to client/src/app/components/HorizontalNav.tsx
diff --git a/client/src/app/shared/components/iconed-status/iconed-status.tsx b/client/src/app/components/IconedStatus.tsx
similarity index 100%
rename from client/src/app/shared/components/iconed-status/iconed-status.tsx
rename to client/src/app/components/IconedStatus.tsx
diff --git a/client/src/app/shared/components/kebab-dropdown/kebab-dropdown.tsx b/client/src/app/components/KebabDropdown.tsx
similarity index 100%
rename from client/src/app/shared/components/kebab-dropdown/kebab-dropdown.tsx
rename to client/src/app/components/KebabDropdown.tsx
diff --git a/client/src/app/common/KeyDisplayToggle.tsx b/client/src/app/components/KeyDisplayToggle.tsx
similarity index 100%
rename from client/src/app/common/KeyDisplayToggle.tsx
rename to client/src/app/components/KeyDisplayToggle.tsx
diff --git a/client/src/app/common/KeycloakProvider.tsx b/client/src/app/components/KeycloakProvider.tsx
similarity index 98%
rename from client/src/app/common/KeycloakProvider.tsx
rename to client/src/app/components/KeycloakProvider.tsx
index 223ea8e7dc..a523eaea64 100644
--- a/client/src/app/common/KeycloakProvider.tsx
+++ b/client/src/app/components/KeycloakProvider.tsx
@@ -3,7 +3,7 @@ import { isAuthRequired } from "@app/Constants";
import i18n from "@app/i18n";
import keycloak from "@app/keycloak";
import { deleteCookie, getCookie, setCookie } from "@app/queries/cookies";
-import { AppPlaceholder } from "@app/shared/components";
+import { AppPlaceholder } from "./AppPlaceholder";
import { Flex, FlexItem, Spinner } from "@patternfly/react-core";
import { ReactKeycloakProvider } from "@react-keycloak/web";
import React, { Suspense, useEffect } from "react";
diff --git a/client/src/app/shared/components/menu-actions/menu-actions.tsx b/client/src/app/components/MenuActions.tsx
similarity index 100%
rename from client/src/app/shared/components/menu-actions/menu-actions.tsx
rename to client/src/app/components/MenuActions.tsx
diff --git a/client/src/app/shared/components/no-data-empty-state/no-data-empty-state.tsx b/client/src/app/components/NoDataEmptyState.tsx
similarity index 100%
rename from client/src/app/shared/components/no-data-empty-state/no-data-empty-state.tsx
rename to client/src/app/components/NoDataEmptyState.tsx
diff --git a/client/src/app/shared/components/Notifications.tsx b/client/src/app/components/Notifications.tsx
similarity index 93%
rename from client/src/app/shared/components/Notifications.tsx
rename to client/src/app/components/Notifications.tsx
index cf84bbaf75..2d51d05f4e 100644
--- a/client/src/app/shared/components/Notifications.tsx
+++ b/client/src/app/components/Notifications.tsx
@@ -4,7 +4,7 @@ import {
AlertActionCloseButton,
AlertGroup,
} from "@patternfly/react-core";
-import { NotificationsContext } from "../notifications-context";
+import { NotificationsContext } from "./NotificationsContext";
export const Notifications: React.FunctionComponent = () => {
const appContext = React.useContext(NotificationsContext);
diff --git a/client/src/app/shared/notifications-context.tsx b/client/src/app/components/NotificationsContext.tsx
similarity index 100%
rename from client/src/app/shared/notifications-context.tsx
rename to client/src/app/components/NotificationsContext.tsx
diff --git a/client/src/app/shared/page-drawer-context.tsx b/client/src/app/components/PageDrawerContext.tsx
similarity index 100%
rename from client/src/app/shared/page-drawer-context.tsx
rename to client/src/app/components/PageDrawerContext.tsx
diff --git a/client/src/app/shared/components/page-header/page-header.tsx b/client/src/app/components/PageHeader.tsx
similarity index 88%
rename from client/src/app/shared/components/page-header/page-header.tsx
rename to client/src/app/components/PageHeader.tsx
index 7af1b7a47a..548b602088 100644
--- a/client/src/app/shared/components/page-header/page-header.tsx
+++ b/client/src/app/components/PageHeader.tsx
@@ -7,9 +7,9 @@ import {
TextContent,
Text,
} from "@patternfly/react-core";
-import { BreadCrumbPath } from "../breadcrumb-path";
-import { MenuActions } from "../menu-actions";
-import { HorizontalNav } from "../horizontal-nav/horizontal-nav";
+import { BreadCrumbPath } from "./BreadCrumbPath";
+import { MenuActions } from "./MenuActions";
+import { HorizontalNav } from "./HorizontalNav";
export interface PageHeaderProps {
title: string;
diff --git a/client/src/app/shared/components/proposed-action-label/proposed-action-label.tsx b/client/src/app/components/ProposedActionLabel.tsx
similarity index 100%
rename from client/src/app/shared/components/proposed-action-label/proposed-action-label.tsx
rename to client/src/app/components/ProposedActionLabel.tsx
diff --git a/client/src/app/shared/components/risk-label/risk-label.tsx b/client/src/app/components/RiskLabel.tsx
similarity index 100%
rename from client/src/app/shared/components/risk-label/risk-label.tsx
rename to client/src/app/components/RiskLabel.tsx
diff --git a/client/src/app/common/RouteWrapper.tsx b/client/src/app/components/RouteWrapper.tsx
similarity index 94%
rename from client/src/app/common/RouteWrapper.tsx
rename to client/src/app/components/RouteWrapper.tsx
index 00fffb4df6..fddcd58d97 100644
--- a/client/src/app/common/RouteWrapper.tsx
+++ b/client/src/app/components/RouteWrapper.tsx
@@ -2,7 +2,7 @@ import { isAuthRequired } from "@app/Constants";
import keycloak from "@app/keycloak";
import React from "react";
import { Redirect, Route } from "react-router-dom";
-import { checkAccess } from "./rbac-utils";
+import { checkAccess } from "../utils/rbac-utils";
interface IRouteWrapperProps {
comp: React.ComponentType;
diff --git a/client/src/app/shared/components/simple-task-viewer/viewer.css b/client/src/app/components/SimpleDocumentViewer.css
similarity index 100%
rename from client/src/app/shared/components/simple-task-viewer/viewer.css
rename to client/src/app/components/SimpleDocumentViewer.css
diff --git a/client/src/app/shared/components/simple-task-viewer/simple-document-viewer.tsx b/client/src/app/components/SimpleDocumentViewer.tsx
similarity index 99%
rename from client/src/app/shared/components/simple-task-viewer/simple-document-viewer.tsx
rename to client/src/app/components/SimpleDocumentViewer.tsx
index 98fdcb55b2..8583221587 100644
--- a/client/src/app/shared/components/simple-task-viewer/simple-document-viewer.tsx
+++ b/client/src/app/components/SimpleDocumentViewer.tsx
@@ -21,7 +21,7 @@ import editorStyles from "@patternfly/react-styles/css/components/CodeEditor/cod
import CodeIcon from "@patternfly/react-icons/dist/esm/icons/code-icon";
import UndoIcon from "@patternfly/react-icons/dist/esm/icons/undo-icon";
-import "./viewer.css";
+import "./SimpleDocumentViewer.css";
export { Language } from "@patternfly/react-code-editor";
diff --git a/client/src/app/shared/components/simple-empty-state/simple-empty-state.tsx b/client/src/app/components/SimpleEmptyState.tsx
similarity index 100%
rename from client/src/app/shared/components/simple-empty-state/simple-empty-state.tsx
rename to client/src/app/components/SimpleEmptyState.tsx
diff --git a/client/src/app/shared/components/simple-pagination/simple-pagination.tsx b/client/src/app/components/SimplePagination.tsx
similarity index 91%
rename from client/src/app/shared/components/simple-pagination/simple-pagination.tsx
rename to client/src/app/components/SimplePagination.tsx
index 12fe8d80bb..328c61e54e 100644
--- a/client/src/app/shared/components/simple-pagination/simple-pagination.tsx
+++ b/client/src/app/components/SimplePagination.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { Pagination, PaginationVariant } from "@patternfly/react-core";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
-import { PaginationStateProps } from "@app/shared/hooks/useLegacyPaginationState";
+import { PaginationStateProps } from "@app/hooks/useLegacyPaginationState";
export interface SimplePaginationProps {
paginationProps: PaginationStateProps;
diff --git a/client/src/app/shared/components/simple-select/simple-select.tsx b/client/src/app/components/SimpleSelect.tsx
similarity index 100%
rename from client/src/app/shared/components/simple-select/simple-select.tsx
rename to client/src/app/components/SimpleSelect.tsx
diff --git a/client/src/app/shared/components/SingleLabelWithOverflow.tsx b/client/src/app/components/SingleLabelWithOverflow.tsx
similarity index 100%
rename from client/src/app/shared/components/SingleLabelWithOverflow.tsx
rename to client/src/app/components/SingleLabelWithOverflow.tsx
diff --git a/client/src/app/shared/components/app-table/state-error.tsx b/client/src/app/components/StateError.tsx
similarity index 100%
rename from client/src/app/shared/components/app-table/state-error.tsx
rename to client/src/app/components/StateError.tsx
diff --git a/client/src/app/shared/components/app-table/state-no-data.tsx b/client/src/app/components/StateNoData.tsx
similarity index 83%
rename from client/src/app/shared/components/app-table/state-no-data.tsx
rename to client/src/app/components/StateNoData.tsx
index d14a40bb3c..793c6426b6 100644
--- a/client/src/app/shared/components/app-table/state-no-data.tsx
+++ b/client/src/app/components/StateNoData.tsx
@@ -1,6 +1,6 @@
import React from "react";
import { useTranslation } from "react-i18next";
-import { NoDataEmptyState } from "../no-data-empty-state";
+import { NoDataEmptyState } from "./NoDataEmptyState";
export const StateNoData: React.FC = () => {
const { t } = useTranslation();
diff --git a/client/src/app/shared/components/app-table/state-no-results.tsx b/client/src/app/components/StateNoResults.tsx
similarity index 100%
rename from client/src/app/shared/components/app-table/state-no-results.tsx
rename to client/src/app/components/StateNoResults.tsx
diff --git a/client/src/app/components/StatusIcon.tsx b/client/src/app/components/StatusIcon.tsx
new file mode 100644
index 0000000000..75f4ff8dc4
--- /dev/null
+++ b/client/src/app/components/StatusIcon.tsx
@@ -0,0 +1,133 @@
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { SpinnerProps, TextContent } from "@patternfly/react-core";
+import CheckCircleIcon from "@patternfly/react-icons/dist/esm/icons/check-circle-icon";
+import TimesCircleIcon from "@patternfly/react-icons/dist/esm/icons/times-circle-icon";
+import InProgressIcon from "@patternfly/react-icons/dist/esm/icons/in-progress-icon";
+import { SVGIconProps } from "@patternfly/react-icons/dist/js/createIcon";
+import ExclamationCircleIcon from "@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon";
+import UnknownIcon from "@patternfly/react-icons/dist/esm/icons/unknown-icon";
+import {
+ global_disabled_color_200 as disabledColor,
+ global_success_color_100 as successColor,
+ global_Color_dark_200 as unknownColor,
+ global_info_color_200 as loadingColor,
+ global_danger_color_100 as errorColor,
+ global_info_color_100 as infoColor,
+} from "@patternfly/react-tokens";
+
+export type StatusIconType =
+ | "Canceled"
+ | "Completed"
+ | "Error"
+ | "Failed"
+ | "InProgress"
+ | "NotStarted"
+ | "Ok"
+ | "Scheduled"
+ | "Unknown";
+
+type IconListType = {
+ [key in StatusIconType]: {
+ Icon: React.ComponentClass | React.FC;
+ color: { name: string; value: string; var: string };
+ };
+};
+const iconList: IconListType = {
+ Canceled: {
+ Icon: TimesCircleIcon,
+ color: infoColor,
+ },
+ Completed: {
+ Icon: CheckCircleIcon,
+ color: successColor,
+ },
+ Error: {
+ Icon: ExclamationCircleIcon,
+ color: errorColor,
+ },
+ Failed: {
+ Icon: ExclamationCircleIcon,
+ color: errorColor,
+ },
+ InProgress: {
+ Icon: InProgressIcon,
+ color: loadingColor,
+ },
+ NotStarted: {
+ Icon: TimesCircleIcon,
+ color: unknownColor,
+ },
+ Ok: {
+ Icon: CheckCircleIcon,
+ color: successColor,
+ },
+ Scheduled: {
+ Icon: InProgressIcon,
+ color: infoColor,
+ },
+ Unknown: {
+ Icon: UnknownIcon,
+ color: unknownColor,
+ },
+};
+
+export interface IStatusIconProps {
+ status: StatusIconType;
+ isDisabled?: boolean;
+ className?: string;
+ label?: React.ReactNode | string;
+}
+
+export const StatusIcon: React.FC = ({
+ status,
+ isDisabled = false,
+ className = "",
+ label,
+}: IStatusIconProps) => {
+ const { t } = useTranslation();
+
+ const Icon = iconList[status].Icon;
+ const icon = (
+
+ );
+
+ if (!label) {
+ switch (status) {
+ case "Canceled":
+ label = t("terms.canceled");
+ break;
+ case "Completed":
+ label = t("terms.completed");
+ break;
+ case "Error":
+ label = t("terms.error");
+ break;
+ case "Failed":
+ label = t("terms.failed");
+ break;
+ case "InProgress":
+ label = t("terms.inProgress");
+ break;
+ case "NotStarted":
+ label = t("terms.notStarted");
+ break;
+ case "Scheduled":
+ label = t("terms.scheduled");
+ break;
+ default:
+ label = t("terms.unknown");
+ break;
+ }
+ }
+
+ return (
+
+ {icon} {label}
+
+ );
+};
diff --git a/client/src/app/shared/components/string-list-field/string-list-field.tsx b/client/src/app/components/StringListField.tsx
similarity index 98%
rename from client/src/app/shared/components/string-list-field/string-list-field.tsx
rename to client/src/app/components/StringListField.tsx
index 16989bdfab..3d31a154ef 100644
--- a/client/src/app/shared/components/string-list-field/string-list-field.tsx
+++ b/client/src/app/components/StringListField.tsx
@@ -7,7 +7,7 @@ import { InputGroup, TextInput, Button } from "@patternfly/react-core";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import TimesCircleIcon from "@patternfly/react-icons/dist/esm/icons/times-circle-icon";
import { getValidatedFromErrors } from "@app/utils/utils";
-import { HookFormPFGroupController } from "../hook-form-pf-fields";
+import { HookFormPFGroupController } from "./HookFormPFFields";
import { Table, Tbody, Td, Tr } from "@patternfly/react-table";
diff --git a/client/src/app/shared/components/table-controls/ConditionalTableBody.tsx b/client/src/app/components/TableControls/ConditionalTableBody.tsx
similarity index 93%
rename from client/src/app/shared/components/table-controls/ConditionalTableBody.tsx
rename to client/src/app/components/TableControls/ConditionalTableBody.tsx
index 74d51614ae..8b4a82f3bc 100644
--- a/client/src/app/shared/components/table-controls/ConditionalTableBody.tsx
+++ b/client/src/app/components/TableControls/ConditionalTableBody.tsx
@@ -1,8 +1,8 @@
import React from "react";
import { Bullseye, Spinner } from "@patternfly/react-core";
import { Tbody, Tr, Td } from "@patternfly/react-table";
-import { StateError } from "../app-table";
-import { StateNoData } from "../app-table/state-no-data";
+import { StateError } from "../StateError";
+import { StateNoData } from "../StateNoData";
export interface IConditionalTableBodyProps {
numRenderedColumns: number;
diff --git a/client/src/app/shared/components/table-controls/TableHeaderContentWithControls.tsx b/client/src/app/components/TableControls/TableHeaderContentWithControls.tsx
similarity index 100%
rename from client/src/app/shared/components/table-controls/TableHeaderContentWithControls.tsx
rename to client/src/app/components/TableControls/TableHeaderContentWithControls.tsx
diff --git a/client/src/app/shared/components/table-controls/TableRowContentWithControls.tsx b/client/src/app/components/TableControls/TableRowContentWithControls.tsx
similarity index 93%
rename from client/src/app/shared/components/table-controls/TableRowContentWithControls.tsx
rename to client/src/app/components/TableControls/TableRowContentWithControls.tsx
index aa54d70fc6..f34f132efd 100644
--- a/client/src/app/shared/components/table-controls/TableRowContentWithControls.tsx
+++ b/client/src/app/components/TableControls/TableRowContentWithControls.tsx
@@ -1,6 +1,6 @@
import React from "react";
import { Td } from "@patternfly/react-table";
-import { useTableControlProps } from "@app/shared/hooks/table-controls";
+import { useTableControlProps } from "@app/hooks/table-controls";
export interface ITableRowContentWithControlsProps<
TItem,
diff --git a/client/src/app/shared/components/table-controls/index.ts b/client/src/app/components/TableControls/index.ts
similarity index 100%
rename from client/src/app/shared/components/table-controls/index.ts
rename to client/src/app/components/TableControls/index.ts
diff --git a/client/src/app/components/target-card.css b/client/src/app/components/TargetCard.css
similarity index 100%
rename from client/src/app/components/target-card.css
rename to client/src/app/components/TargetCard.css
diff --git a/client/src/app/components/target-card.tsx b/client/src/app/components/TargetCard.tsx
similarity index 98%
rename from client/src/app/components/target-card.tsx
rename to client/src/app/components/TargetCard.tsx
index 2a4bab1d49..ce4d82570b 100644
--- a/client/src/app/components/target-card.tsx
+++ b/client/src/app/components/TargetCard.tsx
@@ -26,12 +26,12 @@ import {
} from "@patternfly/react-core/deprecated";
import { CubesIcon, GripVerticalIcon } from "@patternfly/react-icons";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
-
-import { KebabDropdown } from "@app/shared/components";
import { useTranslation } from "react-i18next";
-import "./target-card.css";
+
+import { KebabDropdown } from "./KebabDropdown";
import DefaultRulesetIcon from "@app/images/Icon-Red_Hat-Virtual_server_stack-A-Black-RGB.svg";
import { Target, TargetLabel } from "@app/api/models";
+import "./TargetCard.css";
export interface TargetCardProps {
item: Target;
diff --git a/client/src/app/shared/components/toolbar-bulk-selector/toolbar-bulk-selector.tsx b/client/src/app/components/ToolbarBulkSelector.tsx
similarity index 100%
rename from client/src/app/shared/components/toolbar-bulk-selector/toolbar-bulk-selector.tsx
rename to client/src/app/components/ToolbarBulkSelector.tsx
diff --git a/client/src/app/common/TooltipTitle.tsx b/client/src/app/components/TooltipTitle.tsx
similarity index 87%
rename from client/src/app/common/TooltipTitle.tsx
rename to client/src/app/components/TooltipTitle.tsx
index ccf5e2afd4..5e714d824a 100644
--- a/client/src/app/common/TooltipTitle.tsx
+++ b/client/src/app/components/TooltipTitle.tsx
@@ -1,6 +1,5 @@
import React from "react";
import { Flex, FlexItem, Tooltip } from "@patternfly/react-core";
-import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import HelpIcon from "@patternfly/react-icons/dist/esm/icons/help-icon";
interface IProps {
diff --git a/client/src/app/components/markdown-pf-components.tsx b/client/src/app/components/markdownPFComponents.tsx
similarity index 100%
rename from client/src/app/components/markdown-pf-components.tsx
rename to client/src/app/components/markdownPFComponents.tsx
diff --git a/client/src/app/shared/components/app-placeholder/tests/app-placeholder.test.tsx b/client/src/app/components/tests/AppPlaceholder.test.tsx
similarity index 82%
rename from client/src/app/shared/components/app-placeholder/tests/app-placeholder.test.tsx
rename to client/src/app/components/tests/AppPlaceholder.test.tsx
index 88f1fc099e..1e7fccdb43 100644
--- a/client/src/app/shared/components/app-placeholder/tests/app-placeholder.test.tsx
+++ b/client/src/app/components/tests/AppPlaceholder.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { AppPlaceholder } from "../app-placeholder";
+import { AppPlaceholder } from "../AppPlaceholder";
describe("AppPlaceholder", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/app-table/tests/app-table.test.tsx b/client/src/app/components/tests/AppTable.test.tsx
similarity index 98%
rename from client/src/app/shared/components/app-table/tests/app-table.test.tsx
rename to client/src/app/components/tests/AppTable.test.tsx
index 2916b376e9..03252b4090 100644
--- a/client/src/app/shared/components/app-table/tests/app-table.test.tsx
+++ b/client/src/app/components/tests/AppTable.test.tsx
@@ -8,7 +8,7 @@ import {
sortable,
} from "@patternfly/react-table";
-import { AppTable } from "../app-table";
+import { AppTable } from "../AppTable";
import { render, screen } from "@app/test-config/test-utils";
describe("AppTable", () => {
diff --git a/client/src/app/shared/components/breadcrumb-path/tests/breadcrumb-path.test.tsx b/client/src/app/components/tests/BreadCrumbPath.test.tsx
similarity index 96%
rename from client/src/app/shared/components/breadcrumb-path/tests/breadcrumb-path.test.tsx
rename to client/src/app/components/tests/BreadCrumbPath.test.tsx
index 876d5846c1..0b2b0e7b31 100644
--- a/client/src/app/shared/components/breadcrumb-path/tests/breadcrumb-path.test.tsx
+++ b/client/src/app/components/tests/BreadCrumbPath.test.tsx
@@ -1,7 +1,7 @@
import { fireEvent, render, screen } from "@app/test-config/test-utils";
import React from "react";
import { BrowserRouter as Router } from "react-router-dom";
-import { BreadCrumbPath } from "../breadcrumb-path";
+import { BreadCrumbPath } from "../BreadCrumbPath";
describe("BreadCrumbPath", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/conditional-render/tests/conditional-render.test.tsx b/client/src/app/components/tests/ConditionalRender.test.tsx
similarity index 91%
rename from client/src/app/shared/components/conditional-render/tests/conditional-render.test.tsx
rename to client/src/app/components/tests/ConditionalRender.test.tsx
index c6cf7f4cd2..07dbf5c37f 100644
--- a/client/src/app/shared/components/conditional-render/tests/conditional-render.test.tsx
+++ b/client/src/app/components/tests/ConditionalRender.test.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { ConditionalRender } from "../conditional-render";
+import { ConditionalRender } from "../ConditionalRender";
import { render, screen } from "@app/test-config/test-utils";
describe("ConditionalRender", () => {
diff --git a/client/src/app/shared/components/confirm-dialog/tests/confirm-dialog.test.tsx b/client/src/app/components/tests/ConfirmDialog.test.tsx
similarity index 98%
rename from client/src/app/shared/components/confirm-dialog/tests/confirm-dialog.test.tsx
rename to client/src/app/components/tests/ConfirmDialog.test.tsx
index 8ebb3cf0a4..cdacf3b6b2 100644
--- a/client/src/app/shared/components/confirm-dialog/tests/confirm-dialog.test.tsx
+++ b/client/src/app/components/tests/ConfirmDialog.test.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { ConfirmDialog } from "../confirm-dialog";
+import { ConfirmDialog } from "../ConfirmDialog";
import { ButtonVariant } from "@patternfly/react-core";
import { fireEvent, render, screen } from "@app/test-config/test-utils";
diff --git a/client/src/app/shared/components/empty-text-message/tests/empty-text-message.test.tsx b/client/src/app/components/tests/EmptyTextMessage.test.tsx
similarity index 83%
rename from client/src/app/shared/components/empty-text-message/tests/empty-text-message.test.tsx
rename to client/src/app/components/tests/EmptyTextMessage.test.tsx
index 3d8c4633e2..f203e6049a 100644
--- a/client/src/app/shared/components/empty-text-message/tests/empty-text-message.test.tsx
+++ b/client/src/app/components/tests/EmptyTextMessage.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { EmptyTextMessage } from "../empty-text-message";
+import { EmptyTextMessage } from "../EmptyTextMessage";
describe("EmptyTextMessage", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/horizontal-nav/tests/horizontal-nav.test.tsx b/client/src/app/components/tests/HorizontalNav.test.tsx
similarity index 92%
rename from client/src/app/shared/components/horizontal-nav/tests/horizontal-nav.test.tsx
rename to client/src/app/components/tests/HorizontalNav.test.tsx
index 17e3278546..f840d2aad1 100644
--- a/client/src/app/shared/components/horizontal-nav/tests/horizontal-nav.test.tsx
+++ b/client/src/app/components/tests/HorizontalNav.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { HorizontalNav } from "../horizontal-nav";
+import { HorizontalNav } from "../HorizontalNav";
import { BrowserRouter as Router } from "react-router-dom";
describe("HorizontalNav", () => {
diff --git a/client/src/app/shared/components/menu-actions/tests/menu-actions.test.tsx b/client/src/app/components/tests/MenuActions.test.tsx
similarity index 96%
rename from client/src/app/shared/components/menu-actions/tests/menu-actions.test.tsx
rename to client/src/app/components/tests/MenuActions.test.tsx
index e9b9764bdd..1fca580f9f 100644
--- a/client/src/app/shared/components/menu-actions/tests/menu-actions.test.tsx
+++ b/client/src/app/components/tests/MenuActions.test.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { MenuActions } from "../menu-actions";
+import { MenuActions } from "../MenuActions";
import { render, screen, fireEvent } from "@app/test-config/test-utils";
describe("MenuActions", () => {
diff --git a/client/src/app/shared/components/no-data-empty-state/tests/no-data-empty-state.test.tsx b/client/src/app/components/tests/NoDataEmptyState.test.tsx
similarity index 84%
rename from client/src/app/shared/components/no-data-empty-state/tests/no-data-empty-state.test.tsx
rename to client/src/app/components/tests/NoDataEmptyState.test.tsx
index 02b093e465..01fda5d667 100644
--- a/client/src/app/shared/components/no-data-empty-state/tests/no-data-empty-state.test.tsx
+++ b/client/src/app/components/tests/NoDataEmptyState.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { NoDataEmptyState } from "../no-data-empty-state";
+import { NoDataEmptyState } from "../NoDataEmptyState";
describe("NoDataEmptyState", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/page-header/tests/page-header.test.tsx b/client/src/app/components/tests/PageHeader.test.tsx
similarity index 96%
rename from client/src/app/shared/components/page-header/tests/page-header.test.tsx
rename to client/src/app/components/tests/PageHeader.test.tsx
index cae97dc80b..2a298a3126 100644
--- a/client/src/app/shared/components/page-header/tests/page-header.test.tsx
+++ b/client/src/app/components/tests/PageHeader.test.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { PageHeader } from "../page-header";
+import { PageHeader } from "../PageHeader";
import { Button } from "@patternfly/react-core";
import { render } from "@app/test-config/test-utils";
import { BrowserRouter as Router } from "react-router-dom";
diff --git a/client/src/app/shared/components/risk-label/tests/risk-label.test.tsx b/client/src/app/components/tests/RiskLabel.test.tsx
similarity index 96%
rename from client/src/app/shared/components/risk-label/tests/risk-label.test.tsx
rename to client/src/app/components/tests/RiskLabel.test.tsx
index 93278c8cd7..7d58ef9bd3 100644
--- a/client/src/app/shared/components/risk-label/tests/risk-label.test.tsx
+++ b/client/src/app/components/tests/RiskLabel.test.tsx
@@ -1,6 +1,6 @@
import { render, screen } from "@app/test-config/test-utils";
import React from "react";
-import { RiskLabel } from "../risk-label";
+import { RiskLabel } from "../RiskLabel";
describe("RiskLabel", () => {
it("Green", () => {
diff --git a/client/src/app/shared/components/simple-empty-state/tests/simple-empty-state.test.tsx b/client/src/app/components/tests/SimpleEmptyState.test.tsx
similarity index 94%
rename from client/src/app/shared/components/simple-empty-state/tests/simple-empty-state.test.tsx
rename to client/src/app/components/tests/SimpleEmptyState.test.tsx
index 4927e3c62b..71da90a89b 100644
--- a/client/src/app/shared/components/simple-empty-state/tests/simple-empty-state.test.tsx
+++ b/client/src/app/components/tests/SimpleEmptyState.test.tsx
@@ -1,7 +1,7 @@
import React from "react";
import AdIcon from "@patternfly/react-icons/dist/esm/icons/ad-icon";
-import { SimpleEmptyState } from "../simple-empty-state";
+import { SimpleEmptyState } from "../SimpleEmptyState";
import { render } from "@app/test-config/test-utils";
describe("SimpleEmptyState", () => {
diff --git a/client/src/app/shared/components/simple-select/tests/select-entity.test.tsx b/client/src/app/components/tests/SimpleSelect.test.tsx
similarity index 88%
rename from client/src/app/shared/components/simple-select/tests/select-entity.test.tsx
rename to client/src/app/components/tests/SimpleSelect.test.tsx
index 34005cf918..2ac35a5bfd 100644
--- a/client/src/app/shared/components/simple-select/tests/select-entity.test.tsx
+++ b/client/src/app/components/tests/SimpleSelect.test.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { SimpleSelect } from "../simple-select";
+import { SimpleSelect } from "../SimpleSelect";
import { render } from "@app/test-config/test-utils";
describe("SimpleSelect", () => {
diff --git a/client/src/app/shared/components/app-table/tests/state-error.test.tsx b/client/src/app/components/tests/StateError.test.tsx
similarity index 84%
rename from client/src/app/shared/components/app-table/tests/state-error.test.tsx
rename to client/src/app/components/tests/StateError.test.tsx
index 321c6efdb3..e6d90fa4c8 100644
--- a/client/src/app/shared/components/app-table/tests/state-error.test.tsx
+++ b/client/src/app/components/tests/StateError.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { StateError } from "../state-error";
+import { StateError } from "../StateError";
describe("StateError", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/app-table/tests/state-no-data.test.tsx b/client/src/app/components/tests/StateNoData.test.tsx
similarity index 83%
rename from client/src/app/shared/components/app-table/tests/state-no-data.test.tsx
rename to client/src/app/components/tests/StateNoData.test.tsx
index 511ee64a86..0080670808 100644
--- a/client/src/app/shared/components/app-table/tests/state-no-data.test.tsx
+++ b/client/src/app/components/tests/StateNoData.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { StateNoData } from "../state-no-data";
+import { StateNoData } from "../StateNoData";
describe("StateNoData", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/app-table/tests/state-no-results.test.tsx b/client/src/app/components/tests/StateNoResults.test.tsx
similarity index 82%
rename from client/src/app/shared/components/app-table/tests/state-no-results.test.tsx
rename to client/src/app/components/tests/StateNoResults.test.tsx
index 60e769bca0..6be31511d6 100644
--- a/client/src/app/shared/components/app-table/tests/state-no-results.test.tsx
+++ b/client/src/app/components/tests/StateNoResults.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { StateNoResults } from "../state-no-results";
+import { StateNoResults } from "../StateNoResults";
describe("StateNoResults", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/iconed-status/tests/status-icon.test.tsx b/client/src/app/components/tests/StatusIcon.test.tsx
similarity index 84%
rename from client/src/app/shared/components/iconed-status/tests/status-icon.test.tsx
rename to client/src/app/components/tests/StatusIcon.test.tsx
index d96a227bb6..a9f2da90e4 100644
--- a/client/src/app/shared/components/iconed-status/tests/status-icon.test.tsx
+++ b/client/src/app/components/tests/StatusIcon.test.tsx
@@ -1,6 +1,6 @@
import { render } from "@app/test-config/test-utils";
import React from "react";
-import { IconedStatus } from "../iconed-status";
+import { IconedStatus } from "../IconedStatus";
describe("StatusIcon", () => {
it("Renders without crashing", () => {
diff --git a/client/src/app/shared/components/app-placeholder/tests/__snapshots__/app-placeholder.test.tsx.snap b/client/src/app/components/tests/__snapshots__/AppPlaceholder.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/app-placeholder/tests/__snapshots__/app-placeholder.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/AppPlaceholder.test.tsx.snap
diff --git a/client/src/app/shared/components/app-table/tests/__snapshots__/app-table.test.tsx.snap b/client/src/app/components/tests/__snapshots__/AppTable.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/app-table/tests/__snapshots__/app-table.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/AppTable.test.tsx.snap
diff --git a/client/src/app/shared/components/breadcrumb-path/tests/__snapshots__/breadcrumb-path.test.tsx.snap b/client/src/app/components/tests/__snapshots__/BreadCrumbPath.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/breadcrumb-path/tests/__snapshots__/breadcrumb-path.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/BreadCrumbPath.test.tsx.snap
diff --git a/client/src/app/shared/components/confirm-dialog/tests/__snapshots__/confirm-dialog.test.tsx.snap b/client/src/app/components/tests/__snapshots__/ConfirmDialog.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/confirm-dialog/tests/__snapshots__/confirm-dialog.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/ConfirmDialog.test.tsx.snap
diff --git a/client/src/app/shared/components/empty-text-message/tests/__snapshots__/empty-text-message.test.tsx.snap b/client/src/app/components/tests/__snapshots__/EmptyTextMessage.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/empty-text-message/tests/__snapshots__/empty-text-message.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/EmptyTextMessage.test.tsx.snap
diff --git a/client/src/app/shared/components/horizontal-nav/tests/__snapshots__/horizontal-nav.test.tsx.snap b/client/src/app/components/tests/__snapshots__/HorizontalNav.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/horizontal-nav/tests/__snapshots__/horizontal-nav.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/HorizontalNav.test.tsx.snap
diff --git a/client/src/app/shared/components/menu-actions/tests/__snapshots__/menu-actions.test.tsx.snap b/client/src/app/components/tests/__snapshots__/MenuActions.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/menu-actions/tests/__snapshots__/menu-actions.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/MenuActions.test.tsx.snap
diff --git a/client/src/app/shared/components/no-data-empty-state/tests/__snapshots__/no-data-empty-state.test.tsx.snap b/client/src/app/components/tests/__snapshots__/NoDataEmptyState.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/no-data-empty-state/tests/__snapshots__/no-data-empty-state.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/NoDataEmptyState.test.tsx.snap
diff --git a/client/src/app/shared/components/page-header/tests/__snapshots__/page-header.test.tsx.snap b/client/src/app/components/tests/__snapshots__/PageHeader.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/page-header/tests/__snapshots__/page-header.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/PageHeader.test.tsx.snap
diff --git a/client/src/app/shared/components/simple-empty-state/tests/__snapshots__/simple-empty-state.test.tsx.snap b/client/src/app/components/tests/__snapshots__/SimpleEmptyState.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/simple-empty-state/tests/__snapshots__/simple-empty-state.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/SimpleEmptyState.test.tsx.snap
diff --git a/client/src/app/shared/components/simple-select/tests/__snapshots__/select-entity.test.tsx.snap b/client/src/app/components/tests/__snapshots__/SimpleSelect.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/simple-select/tests/__snapshots__/select-entity.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/SimpleSelect.test.tsx.snap
diff --git a/client/src/app/shared/components/app-table/tests/__snapshots__/state-error.test.tsx.snap b/client/src/app/components/tests/__snapshots__/StateError.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/app-table/tests/__snapshots__/state-error.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/StateError.test.tsx.snap
diff --git a/client/src/app/shared/components/app-table/tests/__snapshots__/state-no-data.test.tsx.snap b/client/src/app/components/tests/__snapshots__/StateNoData.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/app-table/tests/__snapshots__/state-no-data.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/StateNoData.test.tsx.snap
diff --git a/client/src/app/shared/components/app-table/tests/__snapshots__/state-no-results.test.tsx.snap b/client/src/app/components/tests/__snapshots__/StateNoResults.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/app-table/tests/__snapshots__/state-no-results.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/StateNoResults.test.tsx.snap
diff --git a/client/src/app/shared/components/iconed-status/tests/__snapshots__/status-icon.test.tsx.snap b/client/src/app/components/tests/__snapshots__/StatusIcon.test.tsx.snap
similarity index 100%
rename from client/src/app/shared/components/iconed-status/tests/__snapshots__/status-icon.test.tsx.snap
rename to client/src/app/components/tests/__snapshots__/StatusIcon.test.tsx.snap
diff --git a/client/src/app/shared/hooks/index.ts b/client/src/app/hooks/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/index.ts
rename to client/src/app/hooks/index.ts
diff --git a/client/src/app/shared/hooks/table-controls/active-row/getActiveRowDerivedState.ts b/client/src/app/hooks/table-controls/active-row/getActiveRowDerivedState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/active-row/getActiveRowDerivedState.ts
rename to client/src/app/hooks/table-controls/active-row/getActiveRowDerivedState.ts
diff --git a/client/src/app/shared/hooks/table-controls/active-row/index.ts b/client/src/app/hooks/table-controls/active-row/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/active-row/index.ts
rename to client/src/app/hooks/table-controls/active-row/index.ts
diff --git a/client/src/app/shared/hooks/table-controls/active-row/useActiveRowEffects.ts b/client/src/app/hooks/table-controls/active-row/useActiveRowEffects.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/active-row/useActiveRowEffects.ts
rename to client/src/app/hooks/table-controls/active-row/useActiveRowEffects.ts
diff --git a/client/src/app/shared/hooks/table-controls/active-row/useActiveRowState.ts b/client/src/app/hooks/table-controls/active-row/useActiveRowState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/active-row/useActiveRowState.ts
rename to client/src/app/hooks/table-controls/active-row/useActiveRowState.ts
diff --git a/client/src/app/shared/hooks/table-controls/expansion/getExpansionDerivedState.ts b/client/src/app/hooks/table-controls/expansion/getExpansionDerivedState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/expansion/getExpansionDerivedState.ts
rename to client/src/app/hooks/table-controls/expansion/getExpansionDerivedState.ts
diff --git a/client/src/app/shared/hooks/table-controls/expansion/index.ts b/client/src/app/hooks/table-controls/expansion/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/expansion/index.ts
rename to client/src/app/hooks/table-controls/expansion/index.ts
diff --git a/client/src/app/shared/hooks/table-controls/expansion/useExpansionState.ts b/client/src/app/hooks/table-controls/expansion/useExpansionState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/expansion/useExpansionState.ts
rename to client/src/app/hooks/table-controls/expansion/useExpansionState.ts
diff --git a/client/src/app/shared/hooks/table-controls/filtering/getFilterHubRequestParams.ts b/client/src/app/hooks/table-controls/filtering/getFilterHubRequestParams.ts
similarity index 99%
rename from client/src/app/shared/hooks/table-controls/filtering/getFilterHubRequestParams.ts
rename to client/src/app/hooks/table-controls/filtering/getFilterHubRequestParams.ts
index f22938794b..778e50d9ff 100644
--- a/client/src/app/shared/hooks/table-controls/filtering/getFilterHubRequestParams.ts
+++ b/client/src/app/hooks/table-controls/filtering/getFilterHubRequestParams.ts
@@ -3,7 +3,7 @@ import { objectKeys } from "@app/utils/utils";
import {
FilterCategory,
getFilterLogicOperator,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/FilterToolbar";
import { IFilterState } from "./useFilterState";
// If we have multiple UI filters using the same hub field, we need to AND them and pass them to the hub as one filter.
diff --git a/client/src/app/shared/hooks/table-controls/filtering/getFilterProps.ts b/client/src/app/hooks/table-controls/filtering/getFilterProps.ts
similarity index 92%
rename from client/src/app/shared/hooks/table-controls/filtering/getFilterProps.ts
rename to client/src/app/hooks/table-controls/filtering/getFilterProps.ts
index 54623697d2..6eb3d65f58 100644
--- a/client/src/app/shared/hooks/table-controls/filtering/getFilterProps.ts
+++ b/client/src/app/hooks/table-controls/filtering/getFilterProps.ts
@@ -1,7 +1,7 @@
import {
FilterCategory,
IFilterToolbarProps,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/FilterToolbar";
import { IFilterState } from "./useFilterState";
export interface IFilterPropsArgs {
diff --git a/client/src/app/shared/hooks/table-controls/filtering/getLocalFilterDerivedState.ts b/client/src/app/hooks/table-controls/filtering/getLocalFilterDerivedState.ts
similarity index 97%
rename from client/src/app/shared/hooks/table-controls/filtering/getLocalFilterDerivedState.ts
rename to client/src/app/hooks/table-controls/filtering/getLocalFilterDerivedState.ts
index e2acd48239..09ac315d30 100644
--- a/client/src/app/shared/hooks/table-controls/filtering/getLocalFilterDerivedState.ts
+++ b/client/src/app/hooks/table-controls/filtering/getLocalFilterDerivedState.ts
@@ -1,7 +1,7 @@
import {
FilterCategory,
getFilterLogicOperator,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/FilterToolbar";
import { objectKeys } from "@app/utils/utils";
import { IFilterState } from "./useFilterState";
diff --git a/client/src/app/shared/hooks/table-controls/filtering/index.ts b/client/src/app/hooks/table-controls/filtering/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/filtering/index.ts
rename to client/src/app/hooks/table-controls/filtering/index.ts
diff --git a/client/src/app/shared/hooks/table-controls/filtering/useFilterState.ts b/client/src/app/hooks/table-controls/filtering/useFilterState.ts
similarity index 98%
rename from client/src/app/shared/hooks/table-controls/filtering/useFilterState.ts
rename to client/src/app/hooks/table-controls/filtering/useFilterState.ts
index 63f1a8aa3f..08fb2af669 100644
--- a/client/src/app/shared/hooks/table-controls/filtering/useFilterState.ts
+++ b/client/src/app/hooks/table-controls/filtering/useFilterState.ts
@@ -4,7 +4,7 @@ import {
FilterCategory,
FilterValue,
IFilterValues,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/FilterToolbar";
import { useUrlParams } from "../../useUrlParams";
import { objectKeys } from "@app/utils/utils";
import { IExtraArgsForURLParamHooks } from "../types";
diff --git a/client/src/app/shared/hooks/table-controls/getHubRequestParams.ts b/client/src/app/hooks/table-controls/getHubRequestParams.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/getHubRequestParams.ts
rename to client/src/app/hooks/table-controls/getHubRequestParams.ts
diff --git a/client/src/app/shared/hooks/table-controls/index.ts b/client/src/app/hooks/table-controls/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/index.ts
rename to client/src/app/hooks/table-controls/index.ts
diff --git a/client/src/app/shared/hooks/table-controls/pagination/getLocalPaginationDerivedState.ts b/client/src/app/hooks/table-controls/pagination/getLocalPaginationDerivedState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/pagination/getLocalPaginationDerivedState.ts
rename to client/src/app/hooks/table-controls/pagination/getLocalPaginationDerivedState.ts
diff --git a/client/src/app/shared/hooks/table-controls/pagination/getPaginationHubRequestParams.ts b/client/src/app/hooks/table-controls/pagination/getPaginationHubRequestParams.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/pagination/getPaginationHubRequestParams.ts
rename to client/src/app/hooks/table-controls/pagination/getPaginationHubRequestParams.ts
diff --git a/client/src/app/shared/hooks/table-controls/pagination/getPaginationProps.ts b/client/src/app/hooks/table-controls/pagination/getPaginationProps.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/pagination/getPaginationProps.ts
rename to client/src/app/hooks/table-controls/pagination/getPaginationProps.ts
diff --git a/client/src/app/shared/hooks/table-controls/pagination/index.ts b/client/src/app/hooks/table-controls/pagination/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/pagination/index.ts
rename to client/src/app/hooks/table-controls/pagination/index.ts
diff --git a/client/src/app/shared/hooks/table-controls/pagination/usePaginationEffects.ts b/client/src/app/hooks/table-controls/pagination/usePaginationEffects.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/pagination/usePaginationEffects.ts
rename to client/src/app/hooks/table-controls/pagination/usePaginationEffects.ts
diff --git a/client/src/app/shared/hooks/table-controls/pagination/usePaginationState.ts b/client/src/app/hooks/table-controls/pagination/usePaginationState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/pagination/usePaginationState.ts
rename to client/src/app/hooks/table-controls/pagination/usePaginationState.ts
diff --git a/client/src/app/shared/hooks/table-controls/sorting/getLocalSortDerivedState.ts b/client/src/app/hooks/table-controls/sorting/getLocalSortDerivedState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/sorting/getLocalSortDerivedState.ts
rename to client/src/app/hooks/table-controls/sorting/getLocalSortDerivedState.ts
diff --git a/client/src/app/shared/hooks/table-controls/sorting/getSortHubRequestParams.ts b/client/src/app/hooks/table-controls/sorting/getSortHubRequestParams.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/sorting/getSortHubRequestParams.ts
rename to client/src/app/hooks/table-controls/sorting/getSortHubRequestParams.ts
diff --git a/client/src/app/shared/hooks/table-controls/sorting/getSortProps.ts b/client/src/app/hooks/table-controls/sorting/getSortProps.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/sorting/getSortProps.ts
rename to client/src/app/hooks/table-controls/sorting/getSortProps.ts
diff --git a/client/src/app/shared/hooks/table-controls/sorting/index.ts b/client/src/app/hooks/table-controls/sorting/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/sorting/index.ts
rename to client/src/app/hooks/table-controls/sorting/index.ts
diff --git a/client/src/app/shared/hooks/table-controls/sorting/useSortState.ts b/client/src/app/hooks/table-controls/sorting/useSortState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/sorting/useSortState.ts
rename to client/src/app/hooks/table-controls/sorting/useSortState.ts
diff --git a/client/src/app/shared/hooks/table-controls/types.ts b/client/src/app/hooks/table-controls/types.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/types.ts
rename to client/src/app/hooks/table-controls/types.ts
diff --git a/client/src/app/shared/hooks/table-controls/useLocalTableControlState.ts b/client/src/app/hooks/table-controls/useLocalTableControlState.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/useLocalTableControlState.ts
rename to client/src/app/hooks/table-controls/useLocalTableControlState.ts
diff --git a/client/src/app/shared/hooks/table-controls/useLocalTableControls.ts b/client/src/app/hooks/table-controls/useLocalTableControls.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/useLocalTableControls.ts
rename to client/src/app/hooks/table-controls/useLocalTableControls.ts
diff --git a/client/src/app/shared/hooks/table-controls/useTableControlProps.ts b/client/src/app/hooks/table-controls/useTableControlProps.ts
similarity index 98%
rename from client/src/app/shared/hooks/table-controls/useTableControlProps.ts
rename to client/src/app/hooks/table-controls/useTableControlProps.ts
index d7a3730072..872dff81b4 100644
--- a/client/src/app/shared/hooks/table-controls/useTableControlProps.ts
+++ b/client/src/app/hooks/table-controls/useTableControlProps.ts
@@ -3,7 +3,7 @@ import { ToolbarItemProps, ToolbarProps } from "@patternfly/react-core";
import { TableProps, TdProps, ThProps, TrProps } from "@patternfly/react-table";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
-import { IToolbarBulkSelectorProps } from "@app/shared/components/toolbar-bulk-selector/toolbar-bulk-selector";
+import { IToolbarBulkSelectorProps } from "@app/components/ToolbarBulkSelector";
import { objectKeys } from "@app/utils/utils";
import { IUseTableControlPropsArgs } from "./types";
import { getFilterProps } from "./filtering";
diff --git a/client/src/app/shared/hooks/table-controls/useTableControlUrlParams.ts b/client/src/app/hooks/table-controls/useTableControlUrlParams.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/useTableControlUrlParams.ts
rename to client/src/app/hooks/table-controls/useTableControlUrlParams.ts
diff --git a/client/src/app/shared/hooks/table-controls/utils.ts b/client/src/app/hooks/table-controls/utils.ts
similarity index 100%
rename from client/src/app/shared/hooks/table-controls/utils.ts
rename to client/src/app/hooks/table-controls/utils.ts
diff --git a/client/src/app/shared/hooks/useAssessApplication/index.ts b/client/src/app/hooks/useAssessApplication/index.ts
similarity index 100%
rename from client/src/app/shared/hooks/useAssessApplication/index.ts
rename to client/src/app/hooks/useAssessApplication/index.ts
diff --git a/client/src/app/shared/hooks/useAssessApplication/useAssessApplication.test.tsx b/client/src/app/hooks/useAssessApplication/useAssessApplication.test.tsx
similarity index 100%
rename from client/src/app/shared/hooks/useAssessApplication/useAssessApplication.test.tsx
rename to client/src/app/hooks/useAssessApplication/useAssessApplication.test.tsx
diff --git a/client/src/app/shared/hooks/useAssessApplication/useAssessApplication.ts b/client/src/app/hooks/useAssessApplication/useAssessApplication.ts
similarity index 100%
rename from client/src/app/shared/hooks/useAssessApplication/useAssessApplication.ts
rename to client/src/app/hooks/useAssessApplication/useAssessApplication.ts
diff --git a/client/src/app/shared/hooks/useAsyncYupValidation.ts b/client/src/app/hooks/useAsyncYupValidation.ts
similarity index 100%
rename from client/src/app/shared/hooks/useAsyncYupValidation.ts
rename to client/src/app/hooks/useAsyncYupValidation.ts
diff --git a/client/src/app/shared/hooks/useCreateEditModalState.ts b/client/src/app/hooks/useCreateEditModalState.ts
similarity index 100%
rename from client/src/app/shared/hooks/useCreateEditModalState.ts
rename to client/src/app/hooks/useCreateEditModalState.ts
diff --git a/client/src/app/shared/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies.ts b/client/src/app/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies.ts
similarity index 100%
rename from client/src/app/shared/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies.ts
rename to client/src/app/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies.ts
diff --git a/client/src/app/shared/hooks/useLegacyFilterState.ts b/client/src/app/hooks/useLegacyFilterState.ts
similarity index 93%
rename from client/src/app/shared/hooks/useLegacyFilterState.ts
rename to client/src/app/hooks/useLegacyFilterState.ts
index 2df4d22d02..b9e48a4dd0 100644
--- a/client/src/app/shared/hooks/useLegacyFilterState.ts
+++ b/client/src/app/hooks/useLegacyFilterState.ts
@@ -1,4 +1,4 @@
-import { IFilterValues, FilterCategory } from "../components/FilterToolbar";
+import { IFilterValues, FilterCategory } from "@app/components/FilterToolbar";
import {
getLocalFilterDerivedState,
useFilterState,
diff --git a/client/src/app/shared/hooks/useLegacyPaginationState.ts b/client/src/app/hooks/useLegacyPaginationState.ts
similarity index 100%
rename from client/src/app/shared/hooks/useLegacyPaginationState.ts
rename to client/src/app/hooks/useLegacyPaginationState.ts
diff --git a/client/src/app/shared/hooks/useLegacySortState.ts b/client/src/app/hooks/useLegacySortState.ts
similarity index 100%
rename from client/src/app/shared/hooks/useLegacySortState.ts
rename to client/src/app/hooks/useLegacySortState.ts
diff --git a/client/src/app/common/CustomRules/useRuleFiles.tsx b/client/src/app/hooks/useRuleFiles.tsx
similarity index 98%
rename from client/src/app/common/CustomRules/useRuleFiles.tsx
rename to client/src/app/hooks/useRuleFiles.tsx
index 0f61cab9f1..41886a045c 100644
--- a/client/src/app/common/CustomRules/useRuleFiles.tsx
+++ b/client/src/app/hooks/useRuleFiles.tsx
@@ -1,6 +1,6 @@
import { useContext, useState } from "react";
import { FileLoadError, IReadFile } from "@app/api/models";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { AxiosError } from "axios";
import { useUploadFileMutation } from "@app/queries/taskgroups";
import { getAxiosErrorMessage } from "@app/utils/utils";
@@ -9,7 +9,7 @@ import { CustomTargetFormValues } from "@app/pages/migration-targets/components/
import { UseFormReturn } from "react-hook-form";
import { XMLValidator } from "fast-xml-parser";
import XSDSchema from "./windup-jboss-ruleset.xsd";
-import { checkRuleFileType } from "./rules-utils";
+import { checkRuleFileType } from "../utils/rules-utils";
import { DropEvent } from "@patternfly/react-core";
const xmllint = require("xmllint");
diff --git a/client/src/app/shared/hooks/useUrlParams.ts b/client/src/app/hooks/useUrlParams.ts
similarity index 100%
rename from client/src/app/shared/hooks/useUrlParams.ts
rename to client/src/app/hooks/useUrlParams.ts
diff --git a/client/src/app/common/CustomRules/windup-jboss-ruleset.xsd b/client/src/app/hooks/windup-jboss-ruleset.xsd
similarity index 100%
rename from client/src/app/common/CustomRules/windup-jboss-ruleset.xsd
rename to client/src/app/hooks/windup-jboss-ruleset.xsd
diff --git a/client/src/app/layout/DefaultLayout/DefaultLayout.tsx b/client/src/app/layout/DefaultLayout/DefaultLayout.tsx
index c54dfa2798..7cb4ce9376 100644
--- a/client/src/app/layout/DefaultLayout/DefaultLayout.tsx
+++ b/client/src/app/layout/DefaultLayout/DefaultLayout.tsx
@@ -3,8 +3,8 @@ import { Page, SkipToContent } from "@patternfly/react-core";
import { HeaderApp } from "../HeaderApp";
import { SidebarApp } from "../SidebarApp";
-import { Notifications } from "@app/shared/components/Notifications";
-import { PageContentWithDrawerProvider } from "@app/shared/page-drawer-context";
+import { Notifications } from "@app/components/Notifications";
+import { PageContentWithDrawerProvider } from "@app/components/PageDrawerContext";
export interface DefaultLayoutProps {}
diff --git a/client/src/app/layout/DefaultLayout/tests/DefaultLayout.test.tsx b/client/src/app/layout/DefaultLayout/tests/DefaultLayout.test.tsx
index 459383a5d7..6fd79b1d61 100644
--- a/client/src/app/layout/DefaultLayout/tests/DefaultLayout.test.tsx
+++ b/client/src/app/layout/DefaultLayout/tests/DefaultLayout.test.tsx
@@ -2,7 +2,7 @@ import { render } from "@app/test-config/test-utils";
import React from "react";
import { BrowserRouter as Router } from "react-router-dom";
import { DefaultLayout } from "../DefaultLayout";
-import { NotificationsProvider } from "../../../../app/shared/notifications-context";
+import { NotificationsProvider } from "../../../components/NotificationsContext";
it.skip("Test snapshot", () => {
const wrapper = render(
diff --git a/client/src/app/layout/SidebarApp/SidebarApp.tsx b/client/src/app/layout/SidebarApp/SidebarApp.tsx
index 42c9b79001..37edea33eb 100644
--- a/client/src/app/layout/SidebarApp/SidebarApp.tsx
+++ b/client/src/app/layout/SidebarApp/SidebarApp.tsx
@@ -13,13 +13,13 @@ import { SelectOption, SelectVariant } from "@patternfly/react-core/deprecated";
import { Paths } from "@app/Paths";
import { LayoutTheme } from "../LayoutUtils";
-import { checkAccess } from "@app/common/rbac-utils";
+import { checkAccess } from "@app/utils/rbac-utils";
import keycloak from "@app/keycloak";
import { useLocalStorage } from "@migtools/lib-ui";
import { LocalStorageKey } from "@app/Constants";
import { FEATURES_ENABLED } from "@app/FeatureFlags";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { toOptionLike } from "@app/utils/model-utils";
import "./SidebarApp.css";
diff --git a/client/src/app/pages/applications/analysis-wizard/analysis-wizard.tsx b/client/src/app/pages/applications/analysis-wizard/analysis-wizard.tsx
index 875a493c5b..696a2ab446 100644
--- a/client/src/app/pages/applications/analysis-wizard/analysis-wizard.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/analysis-wizard.tsx
@@ -29,12 +29,12 @@ import { yupResolver } from "@hookform/resolvers/yup";
import "./wizard.css";
import { useAnalyzableApplications, isModeSupported } from "./utils";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import {
AnalysisWizardFormValues,
useAnalysisWizardFormValidationSchema,
} from "./schema";
-import { useAsyncYupValidation } from "@app/shared/hooks/useAsyncYupValidation";
+import { useAsyncYupValidation } from "@app/hooks/useAsyncYupValidation";
import { CustomRules } from "./custom-rules";
import { useSetting } from "@app/queries/settings";
import defaultSources from "./sources";
diff --git a/client/src/app/pages/applications/analysis-wizard/components/upload-binary.tsx b/client/src/app/pages/applications/analysis-wizard/components/upload-binary.tsx
index 548acf3786..f64bed5771 100644
--- a/client/src/app/pages/applications/analysis-wizard/components/upload-binary.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/components/upload-binary.tsx
@@ -17,7 +17,7 @@ import { AxiosError } from "axios";
import { getAxiosErrorMessage } from "@app/utils/utils";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { uploadLimit } from "@app/Constants";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { AnalysisWizardFormValues } from "../schema";
interface IUploadBinary {
diff --git a/client/src/app/pages/applications/analysis-wizard/custom-rules.tsx b/client/src/app/pages/applications/analysis-wizard/custom-rules.tsx
index caedaf60f8..f8f33dbf33 100644
--- a/client/src/app/pages/applications/analysis-wizard/custom-rules.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/custom-rules.tsx
@@ -38,25 +38,22 @@ import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { IReadFile, Ref, TargetLabel } from "@app/api/models";
-import { NoDataEmptyState } from "@app/shared/components/no-data-empty-state";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { IReadFile, TargetLabel } from "@app/api/models";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
import "./wizard.css";
import { AnalysisWizardFormValues } from "./schema";
-import {
- getParsedLabel,
- parseRules,
-} from "@app/common/CustomRules/rules-utils";
+import { getParsedLabel, parseRules } from "@app/utils/rules-utils";
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+} from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { toOptionLike } from "@app/utils/model-utils";
import { useFetchIdentities } from "@app/queries/identities";
-import useRuleFiles from "@app/common/CustomRules/useRuleFiles";
+import useRuleFiles from "@app/hooks/useRuleFiles";
interface CustomRulesProps {
taskgroupID: number | null;
}
diff --git a/client/src/app/pages/applications/analysis-wizard/review.tsx b/client/src/app/pages/applications/analysis-wizard/review.tsx
index c4b40aca83..f8b82f203f 100644
--- a/client/src/app/pages/applications/analysis-wizard/review.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/review.tsx
@@ -15,7 +15,7 @@ import { useTranslation } from "react-i18next";
import { Application } from "@app/api/models";
import { AnalysisWizardFormValues } from "./schema";
-import { getParsedLabel } from "@app/common/CustomRules/rules-utils";
+import { getParsedLabel } from "@app/utils/rules-utils";
interface IReview {
applications: Application[];
diff --git a/client/src/app/pages/applications/analysis-wizard/set-mode.tsx b/client/src/app/pages/applications/analysis-wizard/set-mode.tsx
index 84a115f7fe..e5edea1c9e 100644
--- a/client/src/app/pages/applications/analysis-wizard/set-mode.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/set-mode.tsx
@@ -2,12 +2,12 @@ import React from "react";
import { TextContent, Title, Alert, Form } from "@patternfly/react-core";
import { useTranslation } from "react-i18next";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { UploadBinary } from "./components/upload-binary";
import { toOptionLike } from "@app/utils/model-utils";
import { AnalysisMode, AnalysisWizardFormValues } from "./schema";
import { useFormContext } from "react-hook-form";
-import { HookFormPFGroupController } from "@app/shared/components/hook-form-pf-fields";
+import { HookFormPFGroupController } from "@app/components/HookFormPFFields";
interface ISetMode {
isSingleApp: boolean;
diff --git a/client/src/app/pages/applications/analysis-wizard/set-options.tsx b/client/src/app/pages/applications/analysis-wizard/set-options.tsx
index 4d9541f6c5..a30c7b9b08 100644
--- a/client/src/app/pages/applications/analysis-wizard/set-options.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/set-options.tsx
@@ -19,9 +19,9 @@ import { getValidatedFromErrors } from "@app/utils/utils";
import { defaultTargets } from "../../../data/targets";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { AnalysisWizardFormValues } from "./schema";
-import { HookFormPFGroupController } from "@app/shared/components/hook-form-pf-fields";
-import { StringListField } from "@app/shared/components/string-list-field";
-import { getParsedLabel } from "@app/common/CustomRules/rules-utils";
+import { HookFormPFGroupController } from "@app/components/HookFormPFFields";
+import { StringListField } from "@app/components/StringListField";
+import { getParsedLabel } from "@app/utils/rules-utils";
import { DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
import { useFetchTargets } from "@app/queries/targets";
import defaultSources from "./sources";
diff --git a/client/src/app/pages/applications/analysis-wizard/set-scope.tsx b/client/src/app/pages/applications/analysis-wizard/set-scope.tsx
index 5ee335e143..74ee6cea09 100644
--- a/client/src/app/pages/applications/analysis-wizard/set-scope.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/set-scope.tsx
@@ -7,7 +7,7 @@ import { useTranslation } from "react-i18next";
import "./wizard.css";
import { AnalysisWizardFormValues } from "./schema";
-import { StringListField } from "@app/shared/components/string-list-field";
+import { StringListField } from "@app/components/StringListField";
export const SetScope: React.FC = () => {
const { t } = useTranslation();
diff --git a/client/src/app/pages/applications/analysis-wizard/set-targets.tsx b/client/src/app/pages/applications/analysis-wizard/set-targets.tsx
index c217414e3c..a5620d3db2 100644
--- a/client/src/app/pages/applications/analysis-wizard/set-targets.tsx
+++ b/client/src/app/pages/applications/analysis-wizard/set-targets.tsx
@@ -10,7 +10,7 @@ import {
import { useTranslation } from "react-i18next";
import { useFormContext } from "react-hook-form";
-import { TargetCard } from "@app/components/target-card";
+import { TargetCard } from "@app/components/TargetCard";
import { AnalysisWizardFormValues } from "./schema";
import { useSetting } from "@app/queries/settings";
import { useFetchTargets } from "@app/queries/targets";
diff --git a/client/src/app/pages/applications/application-assessment/application-assessment.tsx b/client/src/app/pages/applications/application-assessment/application-assessment.tsx
index 744092631c..42256ea4d5 100644
--- a/client/src/app/pages/applications/application-assessment/application-assessment.tsx
+++ b/client/src/app/pages/applications/application-assessment/application-assessment.tsx
@@ -8,19 +8,16 @@ import {
Bullseye,
} from "@patternfly/react-core";
import BanIcon from "@patternfly/react-icons/dist/esm/icons/ban-icon";
-import {
- ConditionalRender,
- SimpleEmptyState,
- AppPlaceholder,
-} from "@app/shared/components";
+
import { AssessmentRoute } from "@app/Paths";
import { Assessment } from "@app/api/models";
import { getAssessmentById } from "@app/api/rest";
-
import { getAxiosErrorMessage } from "@app/utils/utils";
-
import { ApplicationAssessmentPage } from "./components/application-assessment-page";
import { ApplicationAssessmentWizard } from "./components/application-assessment-wizard";
+import { SimpleEmptyState } from "@app/components/SimpleEmptyState";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
export const ApplicationAssessment: React.FC = () => {
const { t } = useTranslation();
diff --git a/client/src/app/pages/applications/application-assessment/components/application-assessment-page/application-assessment-page-header.tsx b/client/src/app/pages/applications/application-assessment/components/application-assessment-page/application-assessment-page-header.tsx
index e9542a9f84..4faf2290b9 100644
--- a/client/src/app/pages/applications/application-assessment/components/application-assessment-page/application-assessment-page-header.tsx
+++ b/client/src/app/pages/applications/application-assessment/components/application-assessment-page/application-assessment-page-header.tsx
@@ -3,8 +3,9 @@ import { useHistory } from "react-router-dom";
import { useTranslation } from "react-i18next";
import { Button, ButtonVariant, Modal, Text } from "@patternfly/react-core";
-import { ConfirmDialog, PageHeader } from "@app/shared/components";
-import { ApplicationDependenciesFormContainer } from "@app/shared/containers";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
+import { PageHeader } from "@app/components/PageHeader";
+import { ApplicationDependenciesFormContainer } from "@app/components/ApplicationDependenciesFormContainer";
import { Paths } from "@app/Paths";
import { Application, Assessment } from "@app/api/models";
import { getApplicationById } from "@app/api/rest";
diff --git a/client/src/app/pages/applications/application-assessment/components/application-assessment-wizard/application-assessment-wizard.tsx b/client/src/app/pages/applications/application-assessment/components/application-assessment-wizard/application-assessment-wizard.tsx
index f917cf6e21..b4e0204fd9 100644
--- a/client/src/app/pages/applications/application-assessment/components/application-assessment-wizard/application-assessment-wizard.tsx
+++ b/client/src/app/pages/applications/application-assessment/components/application-assessment-wizard/application-assessment-wizard.tsx
@@ -21,11 +21,11 @@ import { AssessmentStakeholdersForm } from "../assessment-stakeholders-form";
import { CustomWizardFooter } from "../custom-wizard-footer";
import { getApplicationById, patchAssessment } from "@app/api/rest";
import { formatPath, Paths } from "@app/Paths";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { WizardStepNavDescription } from "../wizard-step-nav-description";
import { QuestionnaireForm } from "../questionnaire-form";
-import { ConfirmDialog } from "@app/shared/components";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
export const SAVE_ACTION_KEY = "saveAction";
diff --git a/client/src/app/pages/applications/application-assessment/components/assessment-stakeholders-form/assessment-stakeholders-form.tsx b/client/src/app/pages/applications/application-assessment/components/assessment-stakeholders-form/assessment-stakeholders-form.tsx
index 7fd70a22ae..691b291d86 100644
--- a/client/src/app/pages/applications/application-assessment/components/assessment-stakeholders-form/assessment-stakeholders-form.tsx
+++ b/client/src/app/pages/applications/application-assessment/components/assessment-stakeholders-form/assessment-stakeholders-form.tsx
@@ -13,8 +13,8 @@ import { useFormContext } from "react-hook-form";
import { useFetchStakeholders } from "@app/queries/stakeholders";
import { useFetchStakeholderGroups } from "@app/queries/stakeholdergoups";
import { ApplicationAssessmentWizardValues } from "../application-assessment-wizard/application-assessment-wizard";
-import { HookFormPFGroupController } from "@app/shared/components/hook-form-pf-fields";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { HookFormPFGroupController } from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { Stakeholder, StakeholderGroup } from "@app/api/models";
const stakeholderGroupToOption = (
diff --git a/client/src/app/pages/applications/application-assessment/components/questionnaire-form/multi-input-selection/multi-input-selection.tsx b/client/src/app/pages/applications/application-assessment/components/questionnaire-form/multi-input-selection/multi-input-selection.tsx
index 2655eb78fb..a4db0aea11 100644
--- a/client/src/app/pages/applications/application-assessment/components/questionnaire-form/multi-input-selection/multi-input-selection.tsx
+++ b/client/src/app/pages/applications/application-assessment/components/questionnaire-form/multi-input-selection/multi-input-selection.tsx
@@ -3,7 +3,7 @@ import { Radio, Stack, StackItem } from "@patternfly/react-core";
import { Question } from "@app/api/models";
import { getQuestionFieldName } from "../../../form-utils";
-import { HookFormPFGroupController } from "@app/shared/components/hook-form-pf-fields";
+import { HookFormPFGroupController } from "@app/components/HookFormPFFields";
import { useFormContext } from "react-hook-form";
import { ApplicationAssessmentWizardValues } from "../../application-assessment-wizard/application-assessment-wizard";
diff --git a/client/src/app/pages/applications/application-assessment/components/questionnaire-form/questionnaire-form.tsx b/client/src/app/pages/applications/application-assessment/components/questionnaire-form/questionnaire-form.tsx
index e432632a24..562364be01 100644
--- a/client/src/app/pages/applications/application-assessment/components/questionnaire-form/questionnaire-form.tsx
+++ b/client/src/app/pages/applications/application-assessment/components/questionnaire-form/questionnaire-form.tsx
@@ -14,7 +14,7 @@ import { QuestionnaireCategory } from "@app/api/models";
import { MultiInputSelection } from "./multi-input-selection";
import { Question, QuestionHeader, QuestionBody } from "./question";
import { getCommentFieldName } from "../../form-utils";
-import { HookFormPFTextInput } from "@app/shared/components/hook-form-pf-fields";
+import { HookFormPFTextInput } from "@app/components/HookFormPFFields";
import { useFormContext } from "react-hook-form";
import { ApplicationAssessmentWizardValues } from "../application-assessment-wizard/application-assessment-wizard";
diff --git a/client/src/app/pages/applications/application-review/application-review.tsx b/client/src/app/pages/applications/application-review/application-review.tsx
index 3d77c24719..5d5858417a 100644
--- a/client/src/app/pages/applications/application-review/application-review.tsx
+++ b/client/src/app/pages/applications/application-review/application-review.tsx
@@ -17,15 +17,8 @@ import {
import BanIcon from "@patternfly/react-icons/dist/esm/icons/ban-icon";
import InfoCircleIcon from "@patternfly/react-icons/dist/esm/icons/info-circle-icon";
-import {
- AppPlaceholder,
- ConditionalRender,
- SimpleEmptyState,
-} from "@app/shared/components";
-import { useAssessApplication } from "@app/shared/hooks";
-
+import { useAssessApplication } from "@app/hooks";
import { formatPath, Paths, ReviewRoute } from "@app/Paths";
-
import {
getApplicationById,
getAssessmentById,
@@ -34,14 +27,16 @@ import {
} from "@app/api/rest";
import { Application, Assessment, Review } from "@app/api/models";
import { getAxiosErrorMessage } from "@app/utils/utils";
-
import { ApplicationReviewPage } from "./components/application-review-page";
import { ApplicationDetails } from "./components/application-details";
import { ReviewForm } from "./components/review-form";
import { ApplicationAssessmentDonutChart } from "./components/application-assessment-donut-chart";
import { ApplicationAssessmentSummaryTable } from "./components/application-assessment-summary-table";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { useSetting } from "@app/queries/settings";
+import { SimpleEmptyState } from "@app/components/SimpleEmptyState";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
export const ApplicationReview: React.FC = () => {
const { t } = useTranslation();
diff --git a/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/application-assessment-summary-table.tsx b/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/application-assessment-summary-table.tsx
index 1c48ad3095..c5537cca6c 100644
--- a/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/application-assessment-summary-table.tsx
+++ b/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/application-assessment-summary-table.tsx
@@ -8,7 +8,8 @@ import {
TableText,
} from "@patternfly/react-table";
-import { AppTableWithControls, RiskLabel } from "@app/shared/components";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { RiskLabel } from "@app/components/RiskLabel";
import { RISK_LIST } from "@app/Constants";
import {
Assessment,
@@ -18,14 +19,14 @@ import {
Risk,
} from "@app/api/models";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
+} from "@app/components/FilterToolbar/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
interface ITableItem {
answerValue: string;
@@ -83,7 +84,7 @@ export const ApplicationAssessmentSummaryTable: React.FC<
title: "Risk",
type: FilterType.select,
placeholderText: "Filter by name...",
- getItemValue: (item: ITableItem) => {
+ getItemValue: (item) => {
return item.riskValue || "";
},
selectOptions: typeOptions,
diff --git a/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/components/select-risk-filter/select-risk-filter.tsx b/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/components/select-risk-filter/select-risk-filter.tsx
index ee211e8c54..761118b943 100644
--- a/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/components/select-risk-filter/select-risk-filter.tsx
+++ b/client/src/app/pages/applications/application-review/components/application-assessment-summary-table/components/select-risk-filter/select-risk-filter.tsx
@@ -5,7 +5,7 @@ import { ToolbarChip } from "@patternfly/react-core";
import { SelectVariant } from "@patternfly/react-core/deprecated";
import FilterIcon from "@patternfly/react-icons/dist/esm/icons/filter-icon";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { RISK_LIST, DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
import { Risk } from "@app/api/models";
diff --git a/client/src/app/pages/applications/application-review/components/application-review-page/application-review-page.tsx b/client/src/app/pages/applications/application-review/components/application-review-page/application-review-page.tsx
index bdb5a1d5df..7c29defb77 100644
--- a/client/src/app/pages/applications/application-review/components/application-review-page/application-review-page.tsx
+++ b/client/src/app/pages/applications/application-review/components/application-review-page/application-review-page.tsx
@@ -1,10 +1,8 @@
import React from "react";
import { useTranslation } from "react-i18next";
-
import { PageSection, Text } from "@patternfly/react-core";
-import { PageHeader } from "@app/shared/components";
-
+import { PageHeader } from "@app/components/PageHeader";
import { Paths } from "@app/Paths";
export const ApplicationReviewPage: React.FC = ({ children }) => {
diff --git a/client/src/app/pages/applications/application-review/components/review-form/review-form.tsx b/client/src/app/pages/applications/application-review/components/review-form/review-form.tsx
index 6f223849ac..c87e1f1e0a 100644
--- a/client/src/app/pages/applications/application-review/components/review-form/review-form.tsx
+++ b/client/src/app/pages/applications/application-review/components/review-form/review-form.tsx
@@ -29,8 +29,8 @@ import { FieldErrors, useForm } from "react-hook-form";
import {
HookFormPFGroupController,
HookFormPFTextArea,
-} from "@app/shared/components/hook-form-pf-fields";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+} from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
export interface FormValues {
action: ProposedAction;
diff --git a/client/src/app/pages/applications/applications-table-analyze/applications-table-analyze.tsx b/client/src/app/pages/applications/applications-table-analyze/applications-table-analyze.tsx
index 52a1e15581..513f0a9627 100644
--- a/client/src/app/pages/applications/applications-table-analyze/applications-table-analyze.tsx
+++ b/client/src/app/pages/applications/applications-table-analyze/applications-table-analyze.tsx
@@ -27,14 +27,7 @@ import {
import TagIcon from "@patternfly/react-icons/dist/esm/icons/tag-icon";
import PencilAltIcon from "@patternfly/react-icons/dist/esm/icons/pencil-alt-icon";
import keycloak from "@app/keycloak";
-import {
- AppPlaceholder,
- AppTableWithControls,
- ConditionalRender,
- NoDataEmptyState,
- KebabDropdown,
- ToolbarBulkSelector,
-} from "@app/shared/components";
+
import { Paths } from "@app/Paths";
import { Application, Task } from "@app/api/models";
import { getAxiosErrorMessage } from "@app/utils/utils";
@@ -42,7 +35,7 @@ import { ApplicationForm } from "../components/application-form";
import { ApplicationBusinessService } from "../components/application-business-service";
import { ImportApplicationsForm } from "../components/import-applications-form";
import { ApplicationAnalysisStatus } from "../components/application-analysis-status";
-import { FilterToolbar } from "@app/shared/components/FilterToolbar";
+import { FilterToolbar } from "@app/components/FilterToolbar";
import { AnalysisWizard } from "../analysis-wizard/analysis-wizard";
import { ApplicationIdentityForm } from "../components/application-identity-form/application-identity-form";
import { useCancelTaskMutation, useFetchTasks } from "@app/queries/tasks";
@@ -54,7 +47,7 @@ import {
tasksReadScopes,
tasksWriteScopes,
} from "@app/rbac";
-import { checkAccess } from "@app/common/rbac-utils";
+import { checkAccess } from "@app/utils/rbac-utils";
import {
useFetchApplications,
useBulkDeleteApplicationMutation,
@@ -64,13 +57,19 @@ import {
ApplicationTableType,
useApplicationsFilterValues,
} from "../applicationsFilter";
-import { ConditionalTooltip } from "@app/shared/components/ConditionalTooltip";
-import { NotificationsContext } from "@app/shared/notifications-context";
-import { ConfirmDialog } from "@app/shared/components/confirm-dialog/confirm-dialog";
+import { ConditionalTooltip } from "@app/components/ConditionalTooltip";
+import { NotificationsContext } from "@app/components/NotificationsContext";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
import { ApplicationDetailDrawerAnalysis } from "../components/application-detail-drawer";
import { useQueryClient } from "@tanstack/react-query";
-import { SimpleDocumentViewerModal } from "@app/shared/components/simple-task-viewer";
+import { SimpleDocumentViewerModal } from "@app/components/SimpleDocumentViewer";
import { getTaskById } from "@app/api/rest";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { ToolbarBulkSelector } from "@app/components/ToolbarBulkSelector";
+import { KebabDropdown } from "@app/components/KebabDropdown";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/applications/applications-table-assessment/applications-table-assessment.tsx b/client/src/app/pages/applications/applications-table-assessment/applications-table-assessment.tsx
index fb6f974dd9..c1a51da30f 100644
--- a/client/src/app/pages/applications/applications-table-assessment/applications-table-assessment.tsx
+++ b/client/src/app/pages/applications/applications-table-assessment/applications-table-assessment.tsx
@@ -2,7 +2,7 @@ import React, { useState } from "react";
import { useHistory } from "react-router-dom";
import { AxiosError } from "axios";
import { useTranslation, Trans } from "react-i18next";
-import { IconedStatus } from "@app/shared/components";
+import { IconedStatus } from "@app/components/IconedStatus";
import {
Button,
ButtonVariant,
@@ -27,16 +27,7 @@ import {
import TagIcon from "@patternfly/react-icons/dist/esm/icons/tag-icon";
import PencilAltIcon from "@patternfly/react-icons/dist/esm/icons/pencil-alt-icon";
-import {
- AppPlaceholder,
- AppTableWithControls,
- ConditionalRender,
- NoDataEmptyState,
- KebabDropdown,
- ToolbarBulkSelector,
- ConfirmDialog,
-} from "@app/shared/components";
-import { ApplicationDependenciesFormContainer } from "@app/shared/containers";
+import { ApplicationDependenciesFormContainer } from "@app/components/ApplicationDependenciesFormContainer";
import { formatPath, Paths } from "@app/Paths";
import { Application, Assessment, Task } from "@app/api/models";
import { ApplicationForm } from "../components/application-form";
@@ -52,7 +43,7 @@ import {
RBAC,
RBAC_TYPE,
} from "@app/rbac";
-import { checkAccess, checkAccessAll } from "@app/common/rbac-utils";
+import { checkAccess, checkAccessAll } from "@app/utils/rbac-utils";
import keycloak from "@app/keycloak";
import {
ApplicationsQueryKey,
@@ -63,21 +54,29 @@ import {
ApplicationTableType,
useApplicationsFilterValues,
} from "../applicationsFilter";
-import { FilterToolbar } from "@app/shared/components/FilterToolbar/FilterToolbar";
+import { FilterToolbar } from "@app/components/FilterToolbar/FilterToolbar";
import { useDeleteReviewMutation, useFetchReviews } from "@app/queries/reviews";
import {
useDeleteAssessmentMutation,
useFetchApplicationAssessments,
} from "@app/queries/assessments";
import { useQueryClient } from "@tanstack/react-query";
-import { useAssessApplication } from "@app/shared/hooks/useAssessApplication";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { useAssessApplication } from "@app/hooks/useAssessApplication";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { useCreateBulkCopyMutation } from "@app/queries/bulkcopy";
import { ApplicationDetailDrawerAssessment } from "../components/application-detail-drawer";
import { useSetting } from "@app/queries/settings";
import { useFetchTasks } from "@app/queries/tasks";
import { getAxiosErrorMessage } from "@app/utils/utils";
-import { ConditionalTooltip } from "@app/shared/components/ConditionalTooltip";
+import { ConditionalTooltip } from "@app/components/ConditionalTooltip";
+import { StatusIcon } from "@app/components/StatusIcon";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { ToolbarBulkSelector } from "@app/components/ToolbarBulkSelector";
+import { KebabDropdown } from "@app/components/KebabDropdown";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/applications/applications.tsx b/client/src/app/pages/applications/applications.tsx
index 20f417b58d..762a7549af 100644
--- a/client/src/app/pages/applications/applications.tsx
+++ b/client/src/app/pages/applications/applications.tsx
@@ -16,12 +16,11 @@ import {
TabTitleText,
Title,
} from "@patternfly/react-core";
+import { useTranslation } from "react-i18next";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { Paths } from "@app/Paths";
-import { AppPlaceholder } from "@app/shared/components";
-
-import { useTranslation } from "react-i18next";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
const ApplicationsTableAssessment = lazy(
() => import("./applications-table-assessment")
diff --git a/client/src/app/pages/applications/applicationsFilter.ts b/client/src/app/pages/applications/applicationsFilter.ts
index 39b1a25323..e891ea20ab 100644
--- a/client/src/app/pages/applications/applicationsFilter.ts
+++ b/client/src/app/pages/applications/applicationsFilter.ts
@@ -8,10 +8,10 @@ import { useFetchTagCategories } from "@app/queries/tags";
import {
FilterCategory,
FilterType,
-} from "@app/shared/components/FilterToolbar/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
+} from "@app/components/FilterToolbar/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import { dedupeFunction } from "@app/utils/utils";
import { useSelectionState } from "@migtools/lib-ui";
export enum ApplicationTableType {
diff --git a/client/src/app/pages/applications/components/application-analysis-status.tsx b/client/src/app/pages/applications/components/application-analysis-status.tsx
index 0ca60e5834..3734811642 100644
--- a/client/src/app/pages/applications/components/application-analysis-status.tsx
+++ b/client/src/app/pages/applications/components/application-analysis-status.tsx
@@ -1,7 +1,7 @@
import React from "react";
import { TaskState } from "@app/api/models";
-import { IconedStatus } from "@app/shared/components";
+import { IconedStatus } from "@app/components/IconedStatus";
export interface ApplicationAnalysisStatusProps {
state: TaskState;
diff --git a/client/src/app/pages/applications/components/application-assessment-status/application-assessment-status.tsx b/client/src/app/pages/applications/components/application-assessment-status/application-assessment-status.tsx
index 58be4ea186..87c4fbaf7e 100644
--- a/client/src/app/pages/applications/components/application-assessment-status/application-assessment-status.tsx
+++ b/client/src/app/pages/applications/components/application-assessment-status/application-assessment-status.tsx
@@ -1,14 +1,11 @@
import React from "react";
import { AxiosError } from "axios";
import { useTranslation } from "react-i18next";
+import { Spinner } from "@patternfly/react-core";
-import {
- EmptyTextMessage,
- IconedStatus,
- IconedStatusPreset,
-} from "@app/shared/components";
+import { EmptyTextMessage } from "@app/components/EmptyTextMessage";
import { Assessment } from "@app/api/models";
-import { Spinner } from "@patternfly/react-core";
+import { IconedStatus, IconedStatusPreset } from "@app/components/IconedStatus";
export interface ApplicationAssessmentStatusProps {
assessment?: Assessment;
diff --git a/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-analysis.tsx b/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-analysis.tsx
index edabdd415a..3457a644ba 100644
--- a/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-analysis.tsx
+++ b/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-analysis.tsx
@@ -19,10 +19,10 @@ import {
ApplicationDetailDrawer,
IApplicationDetailDrawerProps,
} from "./application-detail-drawer";
-import { EmptyTextMessage } from "@app/shared/components";
+import { EmptyTextMessage } from "@app/components/EmptyTextMessage";
import { useFetchFacts } from "@app/queries/facts";
import { ApplicationFacts } from "./application-facts";
-import { SimpleDocumentViewerModal } from "@app/shared/components/simple-task-viewer";
+import { SimpleDocumentViewerModal } from "@app/components/SimpleDocumentViewer";
import { getTaskById } from "@app/api/rest";
import { COLOR_HEX_VALUES_BY_NAME } from "@app/Constants";
diff --git a/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-assessment.tsx b/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-assessment.tsx
index fae9d71514..6d758d72ee 100644
--- a/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-assessment.tsx
+++ b/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer-assessment.tsx
@@ -11,7 +11,8 @@ import {
Label,
} from "@patternfly/react-core";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
-import { EmptyTextMessage } from "@app/shared/components";
+
+import { EmptyTextMessage } from "@app/components/EmptyTextMessage";
import { EFFORT_ESTIMATE_LIST, PROPOSED_ACTION_LIST } from "@app/Constants";
import { Assessment, Review, Task } from "@app/api/models";
import { ApplicationRisk } from "./application-risk";
diff --git a/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer.tsx b/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer.tsx
index 5a62a3e757..5d30e29e2b 100644
--- a/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer.tsx
+++ b/client/src/app/pages/applications/components/application-detail-drawer/application-detail-drawer.tsx
@@ -18,7 +18,7 @@ import { Application, Task } from "@app/api/models";
import {
IPageDrawerContentProps,
PageDrawerContent,
-} from "@app/shared/page-drawer-context";
+} from "@app/components/PageDrawerContext";
import { getIssuesSingleAppSelectedLocation } from "@app/pages/issues/helpers";
import { ApplicationBusinessService } from "../application-business-service";
import { ApplicationTags } from "../application-tags";
diff --git a/client/src/app/pages/applications/components/application-detail-drawer/application-facts.tsx b/client/src/app/pages/applications/components/application-detail-drawer/application-facts.tsx
index 3e81c65175..408d3550c7 100644
--- a/client/src/app/pages/applications/components/application-detail-drawer/application-facts.tsx
+++ b/client/src/app/pages/applications/components/application-detail-drawer/application-facts.tsx
@@ -2,7 +2,7 @@ import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/FilterToolbar";
import {
Button,
Toolbar,
@@ -14,7 +14,7 @@ import React from "react";
import FilterIcon from "@patternfly/react-icons/dist/esm/icons/filter-icon";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { useTranslation } from "react-i18next";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
import { Fact } from "@app/api/models";
import { FactDetailModal } from "./fact-detail-modal/fact-detail-modal";
diff --git a/client/src/app/pages/applications/components/application-detail-drawer/application-risk.tsx b/client/src/app/pages/applications/components/application-detail-drawer/application-risk.tsx
index 4f8e6d3f9e..97cc7edd54 100644
--- a/client/src/app/pages/applications/components/application-detail-drawer/application-risk.tsx
+++ b/client/src/app/pages/applications/components/application-detail-drawer/application-risk.tsx
@@ -1,5 +1,6 @@
import React, { useEffect } from "react";
-import { RiskLabel } from "@app/shared/components";
+
+import { RiskLabel } from "@app/components/RiskLabel";
import { Application, Assessment } from "@app/api/models";
import { useFetchRisks } from "@app/queries/risks";
diff --git a/client/src/app/pages/applications/components/application-form/__tests__/application-form.test.tsx b/client/src/app/pages/applications/components/application-form/__tests__/application-form.test.tsx
index 92b5d56285..ece524007b 100644
--- a/client/src/app/pages/applications/components/application-form/__tests__/application-form.test.tsx
+++ b/client/src/app/pages/applications/components/application-form/__tests__/application-form.test.tsx
@@ -1,4 +1,4 @@
-import React, { HTMLInputTypeAttribute } from "react";
+import React from "react";
import {
render,
waitFor,
diff --git a/client/src/app/pages/applications/components/application-form/application-form.tsx b/client/src/app/pages/applications/components/application-form/application-form.tsx
index b64086adc5..cad1a7b573 100644
--- a/client/src/app/pages/applications/components/application-form/application-form.tsx
+++ b/client/src/app/pages/applications/components/application-form/application-form.tsx
@@ -14,7 +14,7 @@ import {
import { useForm } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
-import { SimpleSelect, OptionWithValue } from "@app/shared/components";
+import { SimpleSelect, OptionWithValue } from "@app/components/SimpleSelect";
import { DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
import { Application, TagRef } from "@app/api/models";
import {
@@ -35,10 +35,10 @@ import {
HookFormPFGroupController,
HookFormPFTextArea,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
+} from "@app/components/HookFormPFFields";
import { QuestionCircleIcon } from "@patternfly/react-icons";
import { useFetchStakeholders } from "@app/queries/stakeholders";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface FormValues {
name: string;
diff --git a/client/src/app/pages/applications/components/application-identity-form/application-identity-form.tsx b/client/src/app/pages/applications/components/application-identity-form/application-identity-form.tsx
index 0c14d63ff9..fd86df4d08 100644
--- a/client/src/app/pages/applications/components/application-identity-form/application-identity-form.tsx
+++ b/client/src/app/pages/applications/components/application-identity-form/application-identity-form.tsx
@@ -28,9 +28,9 @@ import { useForm } from "react-hook-form";
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { getAxiosErrorMessage } from "@app/utils/utils";
export interface FormValues {
diff --git a/client/src/app/pages/applications/components/application-tags/application-tags.tsx b/client/src/app/pages/applications/components/application-tags/application-tags.tsx
index 922254dd4b..1cf37bcac6 100644
--- a/client/src/app/pages/applications/components/application-tags/application-tags.tsx
+++ b/client/src/app/pages/applications/components/application-tags/application-tags.tsx
@@ -17,15 +17,16 @@ import {
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import textStyles from "@patternfly/react-styles/css/utilities/Text/text";
import FilterIcon from "@patternfly/react-icons/dist/esm/icons/filter-icon";
-import { ConditionalRender, NoDataEmptyState } from "@app/shared/components";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
import { Application, Tag, TagCategory } from "@app/api/models";
import { getTagById, getTagCategoryById } from "@app/api/rest";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
import { useHistory } from "react-router-dom";
import { ApplicationTagLabel } from "./application-tag-label";
diff --git a/client/src/app/pages/applications/components/bulk-copy-assessment-review-form/bulk-copy-assessment-review-form.tsx b/client/src/app/pages/applications/components/bulk-copy-assessment-review-form/bulk-copy-assessment-review-form.tsx
index 79f1800a2e..6b22bb25aa 100644
--- a/client/src/app/pages/applications/components/bulk-copy-assessment-review-form/bulk-copy-assessment-review-form.tsx
+++ b/client/src/app/pages/applications/components/bulk-copy-assessment-review-form/bulk-copy-assessment-review-form.tsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from "react";
+import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import {
@@ -21,31 +21,26 @@ import {
} from "@patternfly/react-core";
import ExclamationTriangleIcon from "@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon";
import { global_palette_gold_400 as gold } from "@patternfly/react-tokens";
-
-import {
- AppTableWithControls,
- IconedStatus,
- ToolbarBulkSelector,
-} from "@app/shared/components";
+import { useSelectionState } from "@migtools/lib-ui";
import { Application, Assessment, Review } from "@app/api/models";
-
import { dedupeFunction } from "@app/utils/utils";
-
import { ApplicationBusinessService } from "../application-business-service";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import { ApplicationAssessmentStatus } from "../application-assessment-status";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
-import { useSelectionState } from "@migtools/lib-ui";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import { useFetchApplicationAssessments } from "@app/queries/assessments";
import { useFetchApplications } from "@app/queries/applications";
import { useFetchTagCategories } from "@app/queries/tags";
+import { IconedStatus } from "@app/components/IconedStatus";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { ToolbarBulkSelector } from "@app/components/ToolbarBulkSelector";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/applications/components/import-applications-form/import-applications-form.tsx b/client/src/app/pages/applications/components/import-applications-form/import-applications-form.tsx
index 8008056dfa..709cc3e311 100644
--- a/client/src/app/pages/applications/components/import-applications-form/import-applications-form.tsx
+++ b/client/src/app/pages/applications/components/import-applications-form/import-applications-form.tsx
@@ -16,7 +16,7 @@ import {
import { UPLOAD_FILE } from "@app/api/rest";
import { getAxiosErrorMessage } from "@app/utils/utils";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface ImportApplicationsFormProps {
onSaved: (response: AxiosResponse) => void;
diff --git a/client/src/app/pages/applications/manage-imports-details/manage-imports-details.tsx b/client/src/app/pages/applications/manage-imports-details/manage-imports-details.tsx
index 24b80e7c68..1ccf437a79 100644
--- a/client/src/app/pages/applications/manage-imports-details/manage-imports-details.tsx
+++ b/client/src/app/pages/applications/manage-imports-details/manage-imports-details.tsx
@@ -12,17 +12,11 @@ import {
} from "@patternfly/react-core";
import { cellWidth, ICell, IRow, truncate } from "@patternfly/react-table";
-import {
- AppPlaceholder,
- AppTableWithControls,
- ConditionalRender,
- PageHeader,
-} from "@app/shared/components";
import { ImportSummaryRoute, Paths } from "@app/Paths";
import { getApplicationSummaryCSV } from "@app/api/rest";
import { ApplicationImport } from "@app/api/models";
import { getAxiosErrorMessage } from "@app/utils/utils";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import {
useFetchImports,
useFetchImportSummaryByID,
@@ -30,10 +24,14 @@ import {
import {
FilterCategory,
FilterType,
-} from "@app/shared/components/FilterToolbar/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/FilterToolbar/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
+import { NotificationsContext } from "@app/components/NotificationsContext";
+import { PageHeader } from "@app/components/PageHeader";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { ConditionalRender } from "@app/components/ConditionalRender";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/applications/manage-imports/manage-imports.tsx b/client/src/app/pages/applications/manage-imports/manage-imports.tsx
index ad1eecd57a..6be4a2bea7 100644
--- a/client/src/app/pages/applications/manage-imports/manage-imports.tsx
+++ b/client/src/app/pages/applications/manage-imports/manage-imports.tsx
@@ -1,7 +1,6 @@
import React, { useState } from "react";
import { useHistory } from "react-router-dom";
import { useTranslation } from "react-i18next";
-import { IconedStatus } from "@app/shared/components";
import {
Button,
ButtonVariant,
@@ -22,34 +21,32 @@ import {
sortable,
truncate,
} from "@patternfly/react-table";
-import {
- AppPlaceholder,
- AppTableWithControls,
- ConditionalRender,
- PageHeader,
- KebabDropdown,
- ConfirmDialog,
-} from "@app/shared/components";
+import { IconedStatus } from "@app/components/IconedStatus";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
import { formatPath, Paths } from "@app/Paths";
import { ApplicationImportSummary } from "@app/api/models";
import { formatDate } from "@app/utils/utils";
-
import { ImportApplicationsForm } from "../components/import-applications-form";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import {
useDeleteImportSummaryMutation,
useFetchImportSummaries,
} from "@app/queries/imports";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar/FilterToolbar";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
-import TooltipTitle from "@app/common/TooltipTitle";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/FilterToolbar/FilterToolbar";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
+import TooltipTitle from "@app/components/TooltipTitle";
+import { NotificationsContext } from "@app/components/NotificationsContext";
+import { PageHeader } from "@app/components/PageHeader";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { KebabDropdown } from "@app/components/KebabDropdown";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/controls/business-services/business-services.tsx b/client/src/app/pages/controls/business-services/business-services.tsx
index d6a02e42fb..f24d100a5d 100644
--- a/client/src/app/pages/controls/business-services/business-services.tsx
+++ b/client/src/app/pages/controls/business-services/business-services.tsx
@@ -16,32 +16,30 @@ import {
TableText,
} from "@patternfly/react-table";
-import {
- AppPlaceholder,
- ConditionalRender,
- AppTableWithControls,
- AppTableActionButtons,
- NoDataEmptyState,
- ConfirmDialog,
-} from "@app/shared/components";
import { BusinessService } from "@app/api/models";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { BusinessServiceForm } from "./components/business-service-form";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import { controlsWriteScopes, RBAC, RBAC_TYPE } from "@app/rbac";
import { useFetchApplications } from "@app/queries/applications";
import {
useDeleteBusinessServiceMutation,
useFetchBusinessServices,
} from "@app/queries/businessservices";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
+import { AppTableActionButtons } from "@app/components/AppTableActionButtons";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/controls/business-services/components/business-service-form.tsx b/client/src/app/pages/controls/business-services/components/business-service-form.tsx
index 14ac23f5ca..d937832577 100644
--- a/client/src/app/pages/controls/business-services/components/business-service-form.tsx
+++ b/client/src/app/pages/controls/business-services/components/business-service-form.tsx
@@ -24,9 +24,9 @@ import {
HookFormPFGroupController,
HookFormPFTextArea,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface FormValues {
name: string;
diff --git a/client/src/app/pages/controls/controls.tsx b/client/src/app/pages/controls/controls.tsx
index a5366d0ee3..6d2a1b68ed 100644
--- a/client/src/app/pages/controls/controls.tsx
+++ b/client/src/app/pages/controls/controls.tsx
@@ -19,7 +19,7 @@ import {
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { Paths } from "@app/Paths";
-import { AppPlaceholder } from "@app/shared/components";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
import { useTranslation } from "react-i18next";
const Stakeholders = lazy(() => import("./stakeholders"));
diff --git a/client/src/app/pages/controls/job-functions/components/job-function-form.tsx b/client/src/app/pages/controls/job-functions/components/job-function-form.tsx
index 40d4dcfc3b..4729b09450 100644
--- a/client/src/app/pages/controls/job-functions/components/job-function-form.tsx
+++ b/client/src/app/pages/controls/job-functions/components/job-function-form.tsx
@@ -19,8 +19,8 @@ import {
} from "@app/queries/jobfunctions";
import { yupResolver } from "@hookform/resolvers/yup";
import { useForm } from "react-hook-form";
-import { HookFormPFTextInput } from "@app/shared/components/hook-form-pf-fields";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { HookFormPFTextInput } from "@app/components/HookFormPFFields";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface FormValues {
name: string;
diff --git a/client/src/app/pages/controls/job-functions/job-functions.tsx b/client/src/app/pages/controls/job-functions/job-functions.tsx
index 9c5678d531..39a826059b 100644
--- a/client/src/app/pages/controls/job-functions/job-functions.tsx
+++ b/client/src/app/pages/controls/job-functions/job-functions.tsx
@@ -16,14 +16,12 @@ import {
TableText,
} from "@patternfly/react-table";
-import {
- AppPlaceholder,
- AppTableActionButtons,
- AppTableWithControls,
- ConditionalRender,
- ConfirmDialog,
- NoDataEmptyState,
-} from "@app/shared/components";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableActionButtons } from "@app/components/AppTableActionButtons";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { JobFunction } from "@app/api/models";
import { JobFunctionForm } from "./components/job-function-form";
@@ -31,16 +29,16 @@ import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import { controlsWriteScopes, RBAC, RBAC_TYPE } from "@app/rbac";
import {
useDeleteJobFunctionMutation,
useFetchJobFunctions,
} from "@app/queries/jobfunctions";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/controls/stakeholder-groups/components/stakeholder-group-form.tsx b/client/src/app/pages/controls/stakeholder-groups/components/stakeholder-group-form.tsx
index f512afd139..b85e53df1c 100644
--- a/client/src/app/pages/controls/stakeholder-groups/components/stakeholder-group-form.tsx
+++ b/client/src/app/pages/controls/stakeholder-groups/components/stakeholder-group-form.tsx
@@ -10,7 +10,7 @@ import {
Form,
} from "@patternfly/react-core";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
import { New, Ref, StakeholderGroup } from "@app/api/models";
@@ -28,8 +28,8 @@ import {
HookFormPFGroupController,
HookFormPFTextArea,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface FormValues {
name: string;
diff --git a/client/src/app/pages/controls/stakeholder-groups/stakeholder-groups.tsx b/client/src/app/pages/controls/stakeholder-groups/stakeholder-groups.tsx
index 38aabf07e2..4da8a23020 100644
--- a/client/src/app/pages/controls/stakeholder-groups/stakeholder-groups.tsx
+++ b/client/src/app/pages/controls/stakeholder-groups/stakeholder-groups.tsx
@@ -26,31 +26,29 @@ import {
TableText,
} from "@patternfly/react-table";
-import {
- AppPlaceholder,
- AppTableActionButtons,
- AppTableWithControls,
- ConditionalRender,
- ConfirmDialog,
- NoDataEmptyState,
-} from "@app/shared/components";
import { getAxiosErrorMessage, numStr } from "@app/utils/utils";
import { StakeholderGroup } from "@app/api/models";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import { controlsWriteScopes, RBAC, RBAC_TYPE } from "@app/rbac";
import {
useDeleteStakeholderGroupMutation,
useFetchStakeholderGroups,
} from "@app/queries/stakeholdergoups";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { StakeholderGroupForm } from "./components/stakeholder-group-form";
+import { AppTableActionButtons } from "@app/components/AppTableActionButtons";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
const ENTITY_FIELD = "entity";
@@ -160,8 +158,8 @@ export const StakeholderGroups: React.FC = () => {
t("actions.filterBy", {
what: t("terms.stakeholders").toLowerCase(),
}) + "...",
- getItemValue: (stakeholderGroup) => {
- const stakeholders = stakeholderGroup.stakeholders?.map(
+ getItemValue: (item) => {
+ const stakeholders = item.stakeholders?.map(
(stakeholder) => stakeholder.name
);
return stakeholders?.join(" ; ") || "";
diff --git a/client/src/app/pages/controls/stakeholders/components/stakeholder-form.tsx b/client/src/app/pages/controls/stakeholders/components/stakeholder-form.tsx
index c6ceff6d55..fafd9f6689 100644
--- a/client/src/app/pages/controls/stakeholders/components/stakeholder-form.tsx
+++ b/client/src/app/pages/controls/stakeholders/components/stakeholder-form.tsx
@@ -25,9 +25,9 @@ import { yupResolver } from "@hookform/resolvers/yup";
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface FormValues {
email: string;
diff --git a/client/src/app/pages/controls/stakeholders/stakeholders.tsx b/client/src/app/pages/controls/stakeholders/stakeholders.tsx
index 796da73651..132aad5235 100644
--- a/client/src/app/pages/controls/stakeholders/stakeholders.tsx
+++ b/client/src/app/pages/controls/stakeholders/stakeholders.tsx
@@ -31,30 +31,25 @@ import {
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import CubesIcon from "@patternfly/react-icons/dist/esm/icons/cubes-icon";
-import {
- AppPlaceholder,
- AppTableActionButtons,
- ConditionalRender,
- ConfirmDialog,
-} from "@app/shared/components";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableActionButtons } from "@app/components/AppTableActionButtons";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { Stakeholder } from "@app/api/models";
-import {
- FilterToolbar,
- FilterType,
-} from "@app/shared/components/FilterToolbar";
+import { FilterToolbar, FilterType } from "@app/components/FilterToolbar";
import {
useDeleteStakeholderMutation,
useFetchStakeholders,
} from "@app/queries/stakeholders";
-import { NotificationsContext } from "@app/shared/notifications-context";
-import { useLocalTableControls } from "@app/shared/hooks/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+import { NotificationsContext } from "@app/components/NotificationsContext";
+import { useLocalTableControls } from "@app/hooks/table-controls";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import { StakeholderForm } from "./components/stakeholder-form";
export const Stakeholders: React.FC = () => {
@@ -158,8 +153,8 @@ export const Stakeholders: React.FC = () => {
t("actions.filterBy", {
what: t("terms.stakeholderGroups").toLowerCase(),
}) + "...",
- getItemValue: (stakeholder) => {
- const stakeholderGroups = stakeholder.stakeholderGroups?.map(
+ getItemValue: (item) => {
+ const stakeholderGroups = item.stakeholderGroups?.map(
(stakeholderGroup) => stakeholderGroup.name
);
return stakeholderGroups?.join(" ; ") || "";
diff --git a/client/src/app/pages/controls/tags/components/tag-category-form.tsx b/client/src/app/pages/controls/tags/components/tag-category-form.tsx
index 4037f2c4da..b1dfb03696 100644
--- a/client/src/app/pages/controls/tags/components/tag-category-form.tsx
+++ b/client/src/app/pages/controls/tags/components/tag-category-form.tsx
@@ -28,9 +28,10 @@ import { yupResolver } from "@hookform/resolvers/yup";
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { Color, OptionWithValue, SimpleSelect } from "@app/shared/components";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { Color } from "@app/components/Color";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { getTagCategoryFallbackColor } from "@app/pages/applications/components/application-tags/application-tag-label";
export interface FormValues {
name: string;
diff --git a/client/src/app/pages/controls/tags/components/tag-form.tsx b/client/src/app/pages/controls/tags/components/tag-form.tsx
index 980d14a1f7..0ac400b747 100644
--- a/client/src/app/pages/controls/tags/components/tag-form.tsx
+++ b/client/src/app/pages/controls/tags/components/tag-form.tsx
@@ -24,12 +24,9 @@ import { yupResolver } from "@hookform/resolvers/yup";
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import {
- OptionWithValue,
- SimpleSelect,
-} from "@app/shared/components/simple-select";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface FormValues {
name: string;
diff --git a/client/src/app/pages/controls/tags/tags.tsx b/client/src/app/pages/controls/tags/tags.tsx
index f049aa9bc5..dc5f0af618 100644
--- a/client/src/app/pages/controls/tags/tags.tsx
+++ b/client/src/app/pages/controls/tags/tags.tsx
@@ -19,37 +19,35 @@ import {
sortable,
} from "@patternfly/react-table";
-import {
- AppPlaceholder,
- AppTableActionButtons,
- AppTableWithControls,
- ConditionalRender,
- NoDataEmptyState,
- Color,
- ConfirmDialog,
-} from "@app/shared/components";
import { dedupeFunction, getAxiosErrorMessage } from "@app/utils/utils";
import { Tag, TagCategory } from "@app/api/models";
import { TagTable } from "./components/tag-table";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import { controlsWriteScopes, RBAC, RBAC_TYPE } from "@app/rbac";
import {
useDeleteTagMutation,
useDeleteTagCategoryMutation,
useFetchTagCategories,
} from "@app/queries/tags";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { COLOR_NAMES_BY_HEX_VALUE } from "@app/Constants";
import { TagForm } from "./components/tag-form";
import { TagCategoryForm } from "./components/tag-category-form";
import { getTagCategoryFallbackColor } from "@app/pages/applications/components/application-tags/application-tag-label";
+import { AppTableActionButtons } from "@app/components/AppTableActionButtons";
+import { Color } from "@app/components/Color";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
const ENTITY_FIELD = "entity";
@@ -187,7 +185,7 @@ export const Tags: React.FC = () => {
t("actions.filterBy", {
what: t("terms.name").toLowerCase(),
}) + "...",
- getItemValue: (item: TagCategory) => {
+ getItemValue: (item) => {
let tagCategoryNames = item.name?.toString() || "";
let tagNames = item?.tags
?.map((tag) => tag.name)
diff --git a/client/src/app/pages/dependencies/dependencies.tsx b/client/src/app/pages/dependencies/dependencies.tsx
index e2a3bdb841..fe19caf66e 100644
--- a/client/src/app/pages/dependencies/dependencies.tsx
+++ b/client/src/app/pages/dependencies/dependencies.tsx
@@ -12,24 +12,21 @@ import {
ToolbarItem,
} from "@patternfly/react-core";
import { useTranslation } from "react-i18next";
-import {
- FilterToolbar,
- FilterType,
-} from "@app/shared/components/FilterToolbar";
+import { FilterToolbar, FilterType } from "@app/components/FilterToolbar";
import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
import {
useTableControlUrlParams,
useTableControlProps,
-} from "@app/shared/hooks/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+} from "@app/hooks/table-controls";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import { useFetchDependencies } from "@app/queries/dependencies";
import { useSelectionState } from "@migtools/lib-ui";
-import { getHubRequestParams } from "@app/shared/hooks/table-controls";
+import { getHubRequestParams } from "@app/hooks/table-controls";
import { DependencyAppsDetailDrawer } from "./dependency-apps-detail-drawer";
import { useSharedAffectedApplicationFilterCategories } from "../issues/helpers";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
diff --git a/client/src/app/pages/dependencies/dependency-apps-detail-drawer.tsx b/client/src/app/pages/dependencies/dependency-apps-detail-drawer.tsx
index 7c74914eb1..96112c6321 100644
--- a/client/src/app/pages/dependencies/dependency-apps-detail-drawer.tsx
+++ b/client/src/app/pages/dependencies/dependency-apps-detail-drawer.tsx
@@ -2,7 +2,7 @@ import * as React from "react";
import {
IPageDrawerContentProps,
PageDrawerContent,
-} from "@app/shared/page-drawer-context";
+} from "@app/components/PageDrawerContext";
import {
TextContent,
Text,
@@ -13,7 +13,7 @@ import {
} from "@patternfly/react-core";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { AnalysisDependency } from "@app/api/models";
-import { StateNoData } from "@app/shared/components/app-table/state-no-data";
+import { StateNoData } from "@app/components/StateNoData";
import { DependencyAppsTable } from "./dependency-apps-table";
export interface IDependencyAppsDetailDrawerProps
diff --git a/client/src/app/pages/dependencies/dependency-apps-table.tsx b/client/src/app/pages/dependencies/dependency-apps-table.tsx
index 2035d1ec3b..83989e9207 100644
--- a/client/src/app/pages/dependencies/dependency-apps-table.tsx
+++ b/client/src/app/pages/dependencies/dependency-apps-table.tsx
@@ -9,18 +9,15 @@ import {
getHubRequestParams,
useTableControlProps,
useTableControlUrlParams,
-} from "@app/shared/hooks/table-controls";
+} from "@app/hooks/table-controls";
import { TableURLParamKeyPrefix } from "@app/Constants";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
-import {
- FilterToolbar,
- FilterType,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/TableControls";
+import { SimplePagination } from "@app/components/SimplePagination";
+import { FilterToolbar, FilterType } from "@app/components/FilterToolbar";
import { useFetchAppDependencies } from "@app/queries/dependencies";
import { useFetchBusinessServices } from "@app/queries/businessservices";
import { useFetchTags } from "@app/queries/tags";
diff --git a/client/src/app/pages/external/jira/components/tracker-status.tsx b/client/src/app/pages/external/jira/components/tracker-status.tsx
index 58adf2e35b..28da0fdf29 100644
--- a/client/src/app/pages/external/jira/components/tracker-status.tsx
+++ b/client/src/app/pages/external/jira/components/tracker-status.tsx
@@ -1,5 +1,4 @@
import React, { useState } from "react";
-import { IconedStatus } from "@app/shared/components";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { useTranslation } from "react-i18next";
@@ -14,6 +13,7 @@ import {
} from "@patternfly/react-core";
import ExclamationCircleIcon from "@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon";
+import { IconedStatus } from "@app/components/IconedStatus";
import "./tracker-status.css";
interface ITrackerStatusProps {
diff --git a/client/src/app/pages/external/jira/tracker-form.tsx b/client/src/app/pages/external/jira/tracker-form.tsx
index 26d1c862f8..d0705a48d7 100644
--- a/client/src/app/pages/external/jira/tracker-form.tsx
+++ b/client/src/app/pages/external/jira/tracker-form.tsx
@@ -25,7 +25,7 @@ import {
useUpdateTrackerMutation,
} from "@app/queries/trackers";
import { useFetchIdentities } from "@app/queries/identities";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import {
duplicateNameCheck,
getAxiosErrorMessage,
@@ -34,8 +34,8 @@ import {
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
import { QuestionCircleIcon } from "@patternfly/react-icons";
diff --git a/client/src/app/pages/external/jira/trackers.tsx b/client/src/app/pages/external/jira/trackers.tsx
index 74de9c9295..d01f0913f4 100644
--- a/client/src/app/pages/external/jira/trackers.tsx
+++ b/client/src/app/pages/external/jira/trackers.tsx
@@ -17,16 +17,7 @@ import {
ToolbarItem,
} from "@patternfly/react-core";
import { useTranslation } from "react-i18next";
-import {
- AppPlaceholder,
- AppTableActionButtons,
- ConditionalRender,
- ConfirmDialog,
-} from "@app/shared/components";
-import {
- FilterToolbar,
- FilterType,
-} from "@app/shared/components/FilterToolbar";
+import { FilterToolbar, FilterType } from "@app/components/FilterToolbar";
import {
useDeleteTrackerMutation,
useFetchTrackers,
@@ -34,21 +25,25 @@ import {
import { Tbody, Tr, Td, Thead, Th, Table } from "@patternfly/react-table";
import CubesIcon from "@patternfly/react-icons/dist/esm/icons/cubes-icon";
-import { useLocalTableControls } from "@app/shared/hooks/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+import { useLocalTableControls } from "@app/hooks/table-controls";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import { TrackerForm } from "./tracker-form";
-import { Tracker, Ref } from "@app/api/models";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { Tracker } from "@app/api/models";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { AxiosError } from "axios";
import { useFetchTickets } from "@app/queries/tickets";
import TrackerStatus from "./components/tracker-status";
import { IssueManagerOptions, toOptionLike } from "@app/utils/model-utils";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
+import { AppTableActionButtons } from "@app/components/AppTableActionButtons";
export const JiraTrackers: React.FC = () => {
const { t } = useTranslation();
diff --git a/client/src/app/pages/identities/components/identity-form/identity-form.tsx b/client/src/app/pages/identities/components/identity-form/identity-form.tsx
index 3f1f76cadd..eb19d8168e 100644
--- a/client/src/app/pages/identities/components/identity-form/identity-form.tsx
+++ b/client/src/app/pages/identities/components/identity-form/identity-form.tsx
@@ -14,7 +14,7 @@ import { yupResolver } from "@hookform/resolvers/yup";
import { XMLValidator } from "fast-xml-parser";
import "./identity-form.css";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { Identity, IdentityKind, New } from "@app/api/models";
import { duplicateNameCheck, getAxiosErrorMessage } from "@app/utils/utils";
import schema0 from "./schema-1.0.0.xsd";
@@ -26,14 +26,14 @@ import {
useFetchIdentities,
useUpdateIdentityMutation,
} from "@app/queries/identities";
-import KeyDisplayToggle from "@app/common/KeyDisplayToggle";
+import KeyDisplayToggle from "@app/components/KeyDisplayToggle";
import { XMLLintValidationResult } from "./validateXML";
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
+} from "@app/components/HookFormPFFields";
import { FEATURES_ENABLED } from "@app/FeatureFlags";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
type UserCredentials = "userpass" | "source";
diff --git a/client/src/app/pages/identities/identities.tsx b/client/src/app/pages/identities/identities.tsx
index 4f064c77cf..fc6d91d74e 100644
--- a/client/src/app/pages/identities/identities.tsx
+++ b/client/src/app/pages/identities/identities.tsx
@@ -21,35 +21,33 @@ import {
TableText,
} from "@patternfly/react-table";
-import {
- AppPlaceholder,
- AppTableActionButtons,
- AppTableWithControls,
- ConditionalRender,
- ConfirmDialog,
- NoDataEmptyState,
-} from "@app/shared/components";
import { Identity, ITypeOptions } from "@app/api/models";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import { AxiosError } from "axios";
import { getAxiosErrorMessage } from "@app/utils/utils";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/FilterToolbar";
import {
useDeleteIdentityMutation,
useFetchIdentities,
} from "@app/queries/identities";
import { useFetchApplications } from "@app/queries/applications";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { IdentityForm } from "./components/identity-form";
import { validateXML } from "./components/identity-form/validateXML";
import { useFetchTrackers } from "@app/queries/trackers";
import { isAuthRequired } from "@app/Constants";
+import { AppTableActionButtons } from "@app/components/AppTableActionButtons";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
const ENTITY_FIELD = "entity";
diff --git a/client/src/app/pages/issues/affected-applications/affected-applications.tsx b/client/src/app/pages/issues/affected-applications/affected-applications.tsx
index 45ee709bd7..cea1aec8b4 100644
--- a/client/src/app/pages/issues/affected-applications/affected-applications.tsx
+++ b/client/src/app/pages/issues/affected-applications/affected-applications.tsx
@@ -9,26 +9,27 @@ import {
Toolbar,
ToolbarContent,
ToolbarItem,
- Truncate,
} from "@patternfly/react-core";
import { useTranslation } from "react-i18next";
-import { AppPlaceholder, ConditionalRender } from "@app/shared/components";
import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
+import { useSelectionState } from "@migtools/lib-ui";
+
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
import {
useTableControlUrlParams,
getHubRequestParams,
useTableControlProps,
-} from "@app/shared/hooks/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+} from "@app/hooks/table-controls";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import { useFetchAppReports } from "@app/queries/issues";
import { Link, useLocation, useParams } from "react-router-dom";
-import { FilterToolbar } from "@app/shared/components/FilterToolbar";
-import { useSelectionState } from "@migtools/lib-ui";
+import { FilterToolbar } from "@app/components/FilterToolbar";
import {
getBackToAllIssuesUrl,
useSharedAffectedApplicationFilterCategories,
diff --git a/client/src/app/pages/issues/components/issue-description-and-links.tsx b/client/src/app/pages/issues/components/issue-description-and-links.tsx
index 3e3d031ae6..991ab5fed0 100644
--- a/client/src/app/pages/issues/components/issue-description-and-links.tsx
+++ b/client/src/app/pages/issues/components/issue-description-and-links.tsx
@@ -5,7 +5,7 @@ import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import ExternalLinkSquareAltIcon from "@patternfly/react-icons/dist/esm/icons/external-link-square-alt-icon";
import { AnalysisIssueLink } from "@app/api/models";
-import { markdownPFComponents } from "@app/components/markdown-pf-components";
+import { markdownPFComponents } from "@app/components/markdownPFComponents";
export interface IIssueDescriptionAndLinksProps {
description: string;
diff --git a/client/src/app/pages/issues/helpers.ts b/client/src/app/pages/issues/helpers.ts
index c737c108a2..088d8a0435 100644
--- a/client/src/app/pages/issues/helpers.ts
+++ b/client/src/app/pages/issues/helpers.ts
@@ -4,12 +4,12 @@ import {
FilterCategory,
FilterType,
FilterValue,
-} from "@app/shared/components/FilterToolbar";
+} from "@app/components/FilterToolbar";
import {
deserializeFilterUrlParams,
serializeFilterUrlParams,
-} from "@app/shared/hooks/table-controls";
-import { trimAndStringifyUrlParams } from "@app/shared/hooks/useUrlParams";
+} from "@app/hooks/table-controls";
+import { trimAndStringifyUrlParams } from "@app/hooks/useUrlParams";
import { Paths } from "@app/Paths";
import { TableURLParamKeyPrefix } from "@app/Constants";
import { IssueFilterGroups } from "./issues";
diff --git a/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-all-incidents-table.tsx b/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-all-incidents-table.tsx
index 3839ee264f..5a83401bb6 100644
--- a/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-all-incidents-table.tsx
+++ b/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-all-incidents-table.tsx
@@ -4,19 +4,19 @@ import { useSelectionState } from "@migtools/lib-ui";
import { TableURLParamKeyPrefix } from "@app/Constants";
import { AnalysisFileReport } from "@app/api/models";
import { useFetchIncidents } from "@app/queries/issues";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
TableHeaderContentWithControls,
ConditionalTableBody,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import {
getHubRequestParams,
useTableControlProps,
useTableControlUrlParams,
-} from "@app/shared/hooks/table-controls";
+} from "@app/hooks/table-controls";
import ReactMarkdown from "react-markdown";
-import { markdownPFComponents } from "@app/components/markdown-pf-components";
+import { markdownPFComponents } from "@app/components/markdownPFComponents";
export interface IFileRemainingIncidentsTableProps {
fileReport: AnalysisFileReport;
diff --git a/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-incidents-detail-modal.tsx b/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-incidents-detail-modal.tsx
index 0293d3468a..5c7b4d2dab 100644
--- a/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-incidents-detail-modal.tsx
+++ b/client/src/app/pages/issues/issue-detail-drawer/file-incidents-detail-modal/file-incidents-detail-modal.tsx
@@ -13,13 +13,12 @@ import {
Truncate,
} from "@patternfly/react-core";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
+
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { StateError } from "@app/components/StateError";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
import { AnalysisFileReport, AnalysisIssue } from "@app/api/models";
import { useFetchIncidents } from "@app/queries/issues";
-import {
- AppPlaceholder,
- NoDataEmptyState,
- StateError,
-} from "@app/shared/components";
import { IncidentCodeSnipViewer } from "./incident-code-snip-viewer";
import { FileAllIncidentsTable } from "./file-all-incidents-table";
import { IssueDescriptionAndLinks } from "../../components/issue-description-and-links";
diff --git a/client/src/app/pages/issues/issue-detail-drawer/issue-affected-files-table.tsx b/client/src/app/pages/issues/issue-detail-drawer/issue-affected-files-table.tsx
index 753a95ac79..08056c3974 100644
--- a/client/src/app/pages/issues/issue-detail-drawer/issue-affected-files-table.tsx
+++ b/client/src/app/pages/issues/issue-detail-drawer/issue-affected-files-table.tsx
@@ -18,20 +18,17 @@ import {
getHubRequestParams,
useTableControlProps,
useTableControlUrlParams,
-} from "@app/shared/hooks/table-controls";
+} from "@app/hooks/table-controls";
import { useFetchFileReports } from "@app/queries/issues";
import { TableURLParamKeyPrefix } from "@app/Constants";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+} from "@app/components/TableControls";
+import { SimplePagination } from "@app/components/SimplePagination";
import { FileIncidentsDetailModal } from "./file-incidents-detail-modal";
-import {
- FilterToolbar,
- FilterType,
-} from "@app/shared/components/FilterToolbar";
+import { FilterToolbar, FilterType } from "@app/components/FilterToolbar";
export interface IIssueAffectedFilesTableProps {
issue: AnalysisIssue;
diff --git a/client/src/app/pages/issues/issue-detail-drawer/issue-detail-drawer.tsx b/client/src/app/pages/issues/issue-detail-drawer/issue-detail-drawer.tsx
index 301598353f..0ad2626ae4 100644
--- a/client/src/app/pages/issues/issue-detail-drawer/issue-detail-drawer.tsx
+++ b/client/src/app/pages/issues/issue-detail-drawer/issue-detail-drawer.tsx
@@ -2,7 +2,7 @@ import * as React from "react";
import {
IPageDrawerContentProps,
PageDrawerContent,
-} from "@app/shared/page-drawer-context";
+} from "@app/components/PageDrawerContext";
import {
TextContent,
Text,
@@ -15,8 +15,8 @@ import {
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { IssueAffectedFilesTable } from "./issue-affected-files-table";
import { useFetchIssue } from "@app/queries/issues";
-import { AppPlaceholder } from "@app/shared/components";
-import { StateNoData } from "@app/shared/components/app-table/state-no-data";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { StateNoData } from "@app/components/StateNoData";
export interface IIssueDetailDrawerProps
extends Pick {
diff --git a/client/src/app/pages/issues/issues-table.tsx b/client/src/app/pages/issues/issues-table.tsx
index 1b9f685a41..d232da0307 100644
--- a/client/src/app/pages/issues/issues-table.tsx
+++ b/client/src/app/pages/issues/issues-table.tsx
@@ -30,29 +30,27 @@ import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import textStyles from "@patternfly/react-styles/css/utilities/Text/text";
import CubesIcon from "@patternfly/react-icons/dist/esm/icons/cubes-icon";
import { useSelectionState } from "@migtools/lib-ui";
-import {
- AppPlaceholder,
- OptionWithValue,
- SimpleSelect,
-} from "@app/shared/components";
+
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { TableURLParamKeyPrefix } from "@app/Constants";
import { useFetchIssueReports, useFetchRuleReports } from "@app/queries/issues";
import {
FilterType,
FilterToolbar,
-} from "@app/shared/components/FilterToolbar";
-import { SingleLabelWithOverflow } from "@app/shared/components/SingleLabelWithOverflow";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+} from "@app/components/FilterToolbar/FilterToolbar";
+import { SingleLabelWithOverflow } from "@app/components/SingleLabelWithOverflow";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
TableHeaderContentWithControls,
ConditionalTableBody,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import {
useTableControlUrlParams,
getHubRequestParams,
useTableControlProps,
-} from "@app/shared/hooks/table-controls";
+} from "@app/hooks/table-controls";
import {
parseReportLabels,
@@ -68,7 +66,7 @@ import {
import { useFetchApplications } from "@app/queries/applications";
import { Paths } from "@app/Paths";
import { AffectedAppsLink } from "./affected-apps-link";
-import { ConditionalTooltip } from "@app/shared/components/ConditionalTooltip";
+import { ConditionalTooltip } from "@app/components/ConditionalTooltip";
import { IssueDetailDrawer } from "./issue-detail-drawer";
import { IssueDescriptionAndLinks } from "./components/issue-description-and-links";
diff --git a/client/src/app/pages/issues/issues.tsx b/client/src/app/pages/issues/issues.tsx
index 4cb6414829..265e9b7391 100644
--- a/client/src/app/pages/issues/issues.tsx
+++ b/client/src/app/pages/issues/issues.tsx
@@ -13,9 +13,10 @@ import {
Title,
} from "@patternfly/react-core";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
+
import { Paths } from "@app/Paths";
import { IssuesTable } from "./issues-table";
-import { ConfirmDialog } from "@app/shared/components";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
import { TableURLParamKeyPrefix } from "@app/Constants";
export enum IssueFilterGroups {
diff --git a/client/src/app/pages/migration-targets/components/custom-target-form.tsx b/client/src/app/pages/migration-targets/components/custom-target-form.tsx
index 4351f76bcb..5785606f94 100644
--- a/client/src/app/pages/migration-targets/components/custom-target-form.tsx
+++ b/client/src/app/pages/migration-targets/components/custom-target-form.tsx
@@ -20,34 +20,28 @@ import * as yup from "yup";
import { yupResolver } from "@hookform/resolvers/yup";
import { AxiosError, AxiosResponse } from "axios";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
-import defaultImage from "./default.png";
+import defaultImage from "./default.png";
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { IReadFile, Rule, Target, TargetLabel } from "@app/api/models";
-import {
- getParsedLabel,
- parseRules,
-} from "@app/common/CustomRules/rules-utils";
+} from "@app/components/HookFormPFFields";
+import { getAxiosErrorMessage } from "@app/utils/utils";
import { useCreateFileMutation } from "@app/queries/targets";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { IReadFile, Rule, Target, TargetLabel } from "@app/api/models";
+import { getParsedLabel, parseRules } from "@app/utils/rules-utils";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { toOptionLike } from "@app/utils/model-utils";
import { useFetchIdentities } from "@app/queries/identities";
-import useRuleFiles from "@app/common/CustomRules/useRuleFiles";
-import {
- customURLValidation,
- duplicateNameCheck,
- getAxiosErrorMessage,
-} from "@app/utils/utils";
+import useRuleFiles from "@app/hooks/useRuleFiles";
+import { customURLValidation, duplicateNameCheck } from "@app/utils/utils";
import { customRulesFilesSchema } from "../../applications/analysis-wizard/schema";
import {
useCreateTargetMutation,
useFetchTargets,
useUpdateTargetMutation,
} from "@app/queries/targets";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface CustomTargetFormProps {
target?: Target | null;
diff --git a/client/src/app/pages/migration-targets/components/dnd/item.tsx b/client/src/app/pages/migration-targets/components/dnd/item.tsx
index c9b7db411e..9e8b50f780 100644
--- a/client/src/app/pages/migration-targets/components/dnd/item.tsx
+++ b/client/src/app/pages/migration-targets/components/dnd/item.tsx
@@ -1,5 +1,5 @@
import React, { forwardRef } from "react";
-import { TargetCard } from "@app/components/target-card";
+import { TargetCard } from "@app/components/TargetCard";
import { useFetchTargets } from "@app/queries/targets";
interface ItemProps {
diff --git a/client/src/app/pages/migration-targets/migration-targets.tsx b/client/src/app/pages/migration-targets/migration-targets.tsx
index e70d165d1f..b6ca8a7162 100644
--- a/client/src/app/pages/migration-targets/migration-targets.tsx
+++ b/client/src/app/pages/migration-targets/migration-targets.tsx
@@ -26,11 +26,11 @@ import {
} from "@patternfly/react-core";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { useTranslation } from "react-i18next";
+import { AxiosError, AxiosResponse } from "axios";
import { Item } from "./components/dnd/item";
import { DndGrid } from "./components/dnd/grid";
-import { AxiosError, AxiosResponse } from "axios";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { CustomTargetForm } from "./components/custom-target-form";
import { useSetting, useSettingMutation } from "@app/queries/settings";
diff --git a/client/src/app/pages/migration-waves/components/export-form.tsx b/client/src/app/pages/migration-waves/components/export-form.tsx
index 8faf7912de..5e8df5e007 100644
--- a/client/src/app/pages/migration-waves/components/export-form.tsx
+++ b/client/src/app/pages/migration-waves/components/export-form.tsx
@@ -18,10 +18,10 @@ import {
useTrackerProjectsByTracker,
getTrackersByKind,
} from "@app/queries/trackers";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { getAxiosErrorMessage } from "@app/utils/utils";
-import { HookFormPFGroupController } from "@app/shared/components/hook-form-pf-fields";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { HookFormPFGroupController } from "@app/components/HookFormPFFields";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
import {
useCreateTicketsMutation,
diff --git a/client/src/app/pages/migration-waves/components/manage-applications-form.tsx b/client/src/app/pages/migration-waves/components/manage-applications-form.tsx
index 9706ca5158..9152601d20 100644
--- a/client/src/app/pages/migration-waves/components/manage-applications-form.tsx
+++ b/client/src/app/pages/migration-waves/components/manage-applications-form.tsx
@@ -16,20 +16,17 @@ import {
import dayjs from "dayjs";
import { Application, MigrationWave } from "@app/api/models";
-import { ToolbarBulkSelector } from "@app/shared/components";
-import { NotificationsContext } from "@app/shared/notifications-context";
-import { useLocalTableControls } from "@app/shared/hooks/table-controls";
-import {
- FilterToolbar,
- FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+import { ToolbarBulkSelector } from "@app/components/ToolbarBulkSelector";
+import { NotificationsContext } from "@app/components/NotificationsContext";
+import { useLocalTableControls } from "@app/hooks/table-controls";
+import { FilterToolbar, FilterType } from "@app/components/FilterToolbar";
+import { SimplePagination } from "@app/components/SimplePagination";
import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import { dedupeFunction } from "@app/utils/utils";
import { useUpdateMigrationWaveMutation } from "@app/queries/migration-waves";
diff --git a/client/src/app/pages/migration-waves/components/migration-wave-form.tsx b/client/src/app/pages/migration-waves/components/migration-wave-form.tsx
index 391a1cd892..b8fc2366b3 100644
--- a/client/src/app/pages/migration-waves/components/migration-wave-form.tsx
+++ b/client/src/app/pages/migration-waves/components/migration-wave-form.tsx
@@ -35,9 +35,9 @@ import {
import {
HookFormPFGroupController,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { DEFAULT_SELECT_MAX_HEIGHT } from "@app/Constants";
dayjs.extend(utc);
dayjs.extend(customParseFormat);
diff --git a/client/src/app/pages/migration-waves/components/stakeholders-table.tsx b/client/src/app/pages/migration-waves/components/stakeholders-table.tsx
index 4cd37e3090..3d76f6243c 100644
--- a/client/src/app/pages/migration-waves/components/stakeholders-table.tsx
+++ b/client/src/app/pages/migration-waves/components/stakeholders-table.tsx
@@ -2,13 +2,13 @@ import React from "react";
import { WaveWithStatus, Role } from "@app/api/models";
import { Toolbar, ToolbarContent, ToolbarItem } from "@patternfly/react-core";
import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
-import { useLocalTableControls } from "@app/shared/hooks/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+import { useLocalTableControls } from "@app/hooks/table-controls";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
export interface IWaveStakeholdersTableProps {
migrationWave: WaveWithStatus;
diff --git a/client/src/app/pages/migration-waves/components/wave-applications-table.tsx b/client/src/app/pages/migration-waves/components/wave-applications-table.tsx
index 139932dce6..094d26ca82 100644
--- a/client/src/app/pages/migration-waves/components/wave-applications-table.tsx
+++ b/client/src/app/pages/migration-waves/components/wave-applications-table.tsx
@@ -8,13 +8,13 @@ import {
} from "@patternfly/react-core";
import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
import alignment from "@patternfly/react-styles/css/utilities/Alignment/alignment";
-import { useLocalTableControls } from "@app/shared/hooks/table-controls";
+import { useLocalTableControls } from "@app/hooks/table-controls";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+} from "@app/components/TableControls";
+import { SimplePagination } from "@app/components/SimplePagination";
import { MigrationWave, WaveWithStatus } from "@app/api/models";
export interface IWaveApplicationsTableProps {
diff --git a/client/src/app/pages/migration-waves/components/wave-status-table.tsx b/client/src/app/pages/migration-waves/components/wave-status-table.tsx
index 380006fd66..256f2e715e 100644
--- a/client/src/app/pages/migration-waves/components/wave-status-table.tsx
+++ b/client/src/app/pages/migration-waves/components/wave-status-table.tsx
@@ -15,14 +15,14 @@ import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
import alignment from "@patternfly/react-styles/css/utilities/Alignment/alignment";
import TrashIcon from "@patternfly/react-icons/dist/esm/icons/trash-icon";
-import { useLocalTableControls } from "@app/shared/hooks/table-controls";
+import { useLocalTableControls } from "@app/hooks/table-controls";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
-import { NoDataEmptyState } from "@app/shared/components/no-data-empty-state";
+} from "@app/components/TableControls";
+import { SimplePagination } from "@app/components/SimplePagination";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
import { useHistory } from "react-router-dom";
import { useFetchTickets } from "@app/queries/tickets";
import { Paths } from "@app/Paths";
diff --git a/client/src/app/pages/migration-waves/migration-waves.tsx b/client/src/app/pages/migration-waves/migration-waves.tsx
index da56b07e0c..e3418dd7e4 100644
--- a/client/src/app/pages/migration-waves/migration-waves.tsx
+++ b/client/src/app/pages/migration-waves/migration-waves.tsx
@@ -30,18 +30,9 @@ import {
useFetchMigrationWaves,
useUpdateMigrationWaveMutation,
} from "@app/queries/migration-waves";
-import {
- AppPlaceholder,
- ConditionalRender,
- ConfirmDialog,
- KebabDropdown,
- ToolbarBulkSelector,
-} from "@app/shared/components";
+
import { MigrationWave, Ref } from "@app/api/models";
-import {
- FilterToolbar,
- FilterType,
-} from "@app/shared/components/FilterToolbar";
+import { FilterToolbar, FilterType } from "@app/components/FilterToolbar";
import {
ExpandableRowContent,
Table,
@@ -51,16 +42,16 @@ import {
Thead,
Tr,
} from "@patternfly/react-table";
-import { useLocalTableControls } from "@app/shared/hooks/table-controls";
-import { SimplePagination } from "@app/shared/components/simple-pagination";
+import { useLocalTableControls } from "@app/hooks/table-controls";
+import { SimplePagination } from "@app/components/SimplePagination";
import {
ConditionalTableBody,
TableHeaderContentWithControls,
TableRowContentWithControls,
-} from "@app/shared/components/table-controls";
+} from "@app/components/TableControls";
import { ExportForm } from "./components/export-form";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { getAxiosErrorMessage } from "@app/utils/utils";
import { AxiosError, AxiosResponse } from "axios";
import { useFetchTrackers } from "@app/queries/trackers";
@@ -71,7 +62,12 @@ import { WaveStatusTable } from "./components/wave-status-table";
import { WaveForm } from "./components/migration-wave-form";
import { ManageApplicationsForm } from "./components/manage-applications-form";
import { deleteMigrationWave } from "@app/api/rest";
-import { ConditionalTooltip } from "@app/shared/components/ConditionalTooltip";
+import { ConditionalTooltip } from "@app/components/ConditionalTooltip";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { ToolbarBulkSelector } from "@app/components/ToolbarBulkSelector";
+import { KebabDropdown } from "@app/components/KebabDropdown";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
dayjs.extend(utc);
dayjs.extend(timezone);
diff --git a/client/src/app/pages/proxies/proxy-form.tsx b/client/src/app/pages/proxies/proxy-form.tsx
index 7ac57b33ce..8c14d8f141 100644
--- a/client/src/app/pages/proxies/proxy-form.tsx
+++ b/client/src/app/pages/proxies/proxy-form.tsx
@@ -18,7 +18,7 @@ import { AxiosError } from "axios";
import { useTranslation } from "react-i18next";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
-import { OptionWithValue, SimpleSelect } from "@app/shared/components";
+import { OptionWithValue, SimpleSelect } from "@app/components/SimpleSelect";
import { getAxiosErrorMessage, getValidatedFromErrors } from "@app/utils/utils";
import { useProxyFormValidationSchema } from "./proxies-validation-schema";
import { Proxy } from "@app/api/models";
@@ -28,8 +28,8 @@ import {
HookFormPFGroupController,
HookFormPFTextArea,
HookFormPFTextInput,
-} from "@app/shared/components/hook-form-pf-fields";
-import { NotificationsContext } from "@app/shared/notifications-context";
+} from "@app/components/HookFormPFFields";
+import { NotificationsContext } from "@app/components/NotificationsContext";
export interface ProxyFormValues {
isHttpProxyEnabled: boolean;
diff --git a/client/src/app/pages/reports/components/adoption-candidate-graph/adoption-candidate-graph.tsx b/client/src/app/pages/reports/components/adoption-candidate-graph/adoption-candidate-graph.tsx
index 23f1867b42..baa4cfad95 100644
--- a/client/src/app/pages/reports/components/adoption-candidate-graph/adoption-candidate-graph.tsx
+++ b/client/src/app/pages/reports/components/adoption-candidate-graph/adoption-candidate-graph.tsx
@@ -1,13 +1,6 @@
-import React, {
- useCallback,
- useContext,
- useEffect,
- useMemo,
- useState,
-} from "react";
+import React, { useContext, useEffect, useMemo, useState } from "react";
import Measure from "react-measure";
import { useTranslation } from "react-i18next";
-
import {
Bullseye,
Checkbox,
@@ -29,9 +22,10 @@ import {
chart_color_green_100 as green,
global_palette_white as white,
} from "@patternfly/react-tokens";
+import { useQuery } from "@tanstack/react-query";
-import { ConditionalRender, StateError } from "@app/shared/components";
-
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { StateError } from "@app/components/StateError";
import { EFFORT_ESTIMATE_LIST, PROPOSED_ACTION_LIST } from "@app/Constants";
import { getAssessmentConfidence } from "@app/api/rest";
import {
@@ -39,13 +33,11 @@ import {
AssessmentConfidence,
ProposedAction,
} from "@app/api/models";
-
import { ApplicationSelectionContext } from "../../application-selection-context";
import { CartesianSquare } from "./cartesian-square";
import { Arrow } from "./arrow";
import { useFetchReviews } from "@app/queries/reviews";
-import useFetchApplicationDependencies from "@app/shared/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies";
-import { useQuery } from "@tanstack/react-query";
+import useFetchApplicationDependencies from "@app/hooks/useFetchApplicationDependencies/useFetchApplicationDependencies";
interface Line {
from: LinePoint;
diff --git a/client/src/app/pages/reports/components/adoption-candidate-table/adoption-candidate-table.tsx b/client/src/app/pages/reports/components/adoption-candidate-table/adoption-candidate-table.tsx
index 802d0de1ed..60d7a705bc 100644
--- a/client/src/app/pages/reports/components/adoption-candidate-table/adoption-candidate-table.tsx
+++ b/client/src/app/pages/reports/components/adoption-candidate-table/adoption-candidate-table.tsx
@@ -1,6 +1,5 @@
-import React, { useCallback, useContext, useEffect, useMemo } from "react";
+import React, { useContext, useEffect, useMemo } from "react";
import { useTranslation } from "react-i18next";
-
import {
cellWidth,
ICell,
@@ -11,38 +10,32 @@ import {
TableVariant,
truncate,
} from "@patternfly/react-table";
-import { Label, ToolbarItem } from "@patternfly/react-core";
-
-import {
- AppTableWithControls,
- ProposedActionLabel,
- RiskLabel,
- ToolbarBulkSelector,
-} from "@app/shared/components";
+import { Label } from "@patternfly/react-core";
+import { useQuery } from "@tanstack/react-query";
import { EFFORT_ESTIMATE_LIST, RISK_LIST } from "@app/Constants";
import {
Application,
AssessmentConfidence,
- AssessmentRisk,
Review,
Risk,
} from "@app/api/models";
import { getAssessmentConfidence } from "@app/api/rest";
-
import { ApplicationSelectionContext } from "../../application-selection-context";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
-import { useLegacySortState } from "@app/shared/hooks/useLegacySortState";
-import { useSelectionState } from "@migtools/lib-ui";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
+import { useLegacySortState } from "@app/hooks/useLegacySortState";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
import { useFetchReviews } from "@app/queries/reviews";
-import { useQuery } from "@tanstack/react-query";
import { useFetchRisks } from "@app/queries/risks";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
+import { ToolbarBulkSelector } from "@app/components/ToolbarBulkSelector";
+import { RiskLabel } from "@app/components/RiskLabel";
+import { ProposedActionLabel } from "@app/components/ProposedActionLabel";
export interface TableRowData {
application: Application;
diff --git a/client/src/app/pages/reports/components/adoption-plan/adoption-plan.tsx b/client/src/app/pages/reports/components/adoption-plan/adoption-plan.tsx
index 0a3a2b8a2a..17080aad5d 100644
--- a/client/src/app/pages/reports/components/adoption-plan/adoption-plan.tsx
+++ b/client/src/app/pages/reports/components/adoption-plan/adoption-plan.tsx
@@ -11,12 +11,11 @@ import {
ChartVoronoiContainer,
} from "@patternfly/react-charts";
-import { ConditionalRender, StateError } from "@app/shared/components";
-
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { StateError } from "@app/components/StateError";
import { PROPOSED_ACTION_LIST } from "@app/Constants";
import { ApplicationAdoptionPlan } from "@app/api/models";
import { getApplicationAdoptionPlan } from "@app/api/rest";
-
import { ApplicationSelectionContext } from "../../application-selection-context";
import { NoApplicationSelectedEmptyState } from "../no-application-selected-empty-state";
import { useQuery } from "@tanstack/react-query";
diff --git a/client/src/app/pages/reports/components/application-cell/application-cell.tsx b/client/src/app/pages/reports/components/application-cell/application-cell.tsx
index c0888ae0c9..340b8afb3e 100644
--- a/client/src/app/pages/reports/components/application-cell/application-cell.tsx
+++ b/client/src/app/pages/reports/components/application-cell/application-cell.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { AxiosError } from "axios";
import { useTranslation } from "react-i18next";
-import { EmptyTextMessage } from "@app/shared/components";
+import { EmptyTextMessage } from "@app/components/EmptyTextMessage";
import { Application } from "@app/api/models";
export interface IApplicationCellProps {
diff --git a/client/src/app/pages/reports/components/identified-risks-table/identified-risks-table.tsx b/client/src/app/pages/reports/components/identified-risks-table/identified-risks-table.tsx
index 01138ce030..02e84ef4d7 100644
--- a/client/src/app/pages/reports/components/identified-risks-table/identified-risks-table.tsx
+++ b/client/src/app/pages/reports/components/identified-risks-table/identified-risks-table.tsx
@@ -8,19 +8,19 @@ import {
TableVariant,
} from "@patternfly/react-table";
-import { AppTableWithControls } from "@app/shared/components";
+import { AppTableWithControls } from "@app/components/AppTableWithControls";
import { Application, AssessmentQuestionRisk } from "@app/api/models";
import { getAssessmentIdentifiedRisks } from "@app/api/rest";
import { ApplicationSelectionContext } from "../../application-selection-context";
-import { useLegacyPaginationState } from "@app/shared/hooks/useLegacyPaginationState";
+import { useLegacyPaginationState } from "@app/hooks/useLegacyPaginationState";
import {
FilterCategory,
FilterToolbar,
FilterType,
-} from "@app/shared/components/FilterToolbar";
-import { useLegacyFilterState } from "@app/shared/hooks/useLegacyFilterState";
+} from "@app/components/FilterToolbar";
+import { useLegacyFilterState } from "@app/hooks/useLegacyFilterState";
import { useQuery } from "@tanstack/react-query";
export interface ITableRowData {
diff --git a/client/src/app/pages/reports/components/landscape/landscape.tsx b/client/src/app/pages/reports/components/landscape/landscape.tsx
index 82f4594b8c..2614f14074 100644
--- a/client/src/app/pages/reports/components/landscape/landscape.tsx
+++ b/client/src/app/pages/reports/components/landscape/landscape.tsx
@@ -3,7 +3,8 @@ import { useTranslation } from "react-i18next";
import { Skeleton, Split, SplitItem } from "@patternfly/react-core";
-import { ConditionalRender, StateError } from "@app/shared/components";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { StateError } from "@app/components/StateError";
import { RISK_LIST } from "@app/Constants";
import { AssessmentRisk } from "@app/api/models";
diff --git a/client/src/app/pages/reports/components/no-application-selected-empty-state/no-application-selected-empty-state.tsx b/client/src/app/pages/reports/components/no-application-selected-empty-state/no-application-selected-empty-state.tsx
index fc95ddd994..cce3ae0df7 100644
--- a/client/src/app/pages/reports/components/no-application-selected-empty-state/no-application-selected-empty-state.tsx
+++ b/client/src/app/pages/reports/components/no-application-selected-empty-state/no-application-selected-empty-state.tsx
@@ -1,7 +1,7 @@
import React from "react";
import { useTranslation } from "react-i18next";
-import { NoDataEmptyState } from "@app/shared/components";
+import { NoDataEmptyState } from "@app/components/NoDataEmptyState";
export const NoApplicationSelectedEmptyState: React.FC = () => {
const { t } = useTranslation();
diff --git a/client/src/app/pages/reports/reports.tsx b/client/src/app/pages/reports/reports.tsx
index 353ff5cbdc..f1d99f2bca 100644
--- a/client/src/app/pages/reports/reports.tsx
+++ b/client/src/app/pages/reports/reports.tsx
@@ -24,11 +24,9 @@ import {
import HelpIcon from "@patternfly/react-icons/dist/esm/icons/help-icon";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
-import {
- AppPlaceholder,
- ConditionalRender,
- StateError,
-} from "@app/shared/components";
+import { AppPlaceholder } from "@app/components/AppPlaceholder";
+import { ConditionalRender } from "@app/components/ConditionalRender";
+import { StateError } from "@app/components/StateError";
import { ApplicationSelectionContextProvider } from "./application-selection-context";
import { Landscape } from "./components/landscape";
import { AdoptionCandidateTable } from "./components/adoption-candidate-table";
diff --git a/client/src/app/pages/repositories/Mvn.tsx b/client/src/app/pages/repositories/Mvn.tsx
index 1c291d07f1..6d62e49ee5 100644
--- a/client/src/app/pages/repositories/Mvn.tsx
+++ b/client/src/app/pages/repositories/Mvn.tsx
@@ -21,9 +21,9 @@ import { useTranslation } from "react-i18next";
import "./Repositories.css";
import spacing from "@patternfly/react-styles/css/utilities/Spacing/spacing";
import { useDeleteCacheMutation, useFetchCache } from "@app/queries/cache";
-import { ConfirmDialog } from "@app/shared/components";
+import { ConfirmDialog } from "@app/components/ConfirmDialog";
import { isRWXSupported } from "@app/Constants";
-import { ConditionalTooltip } from "@app/shared/components/ConditionalTooltip";
+import { ConditionalTooltip } from "@app/components/ConditionalTooltip";
import { useSetting, useSettingMutation } from "@app/queries/settings";
export const RepositoriesMvn: React.FC = () => {
diff --git a/client/src/app/queries/bulkcopy.ts b/client/src/app/queries/bulkcopy.ts
index 30412f637c..719711f03d 100644
--- a/client/src/app/queries/bulkcopy.ts
+++ b/client/src/app/queries/bulkcopy.ts
@@ -6,7 +6,7 @@ import {
getBulkCopyAssessment,
} from "@app/api/rest";
import React from "react";
-import { NotificationsContext } from "@app/shared/notifications-context";
+import { NotificationsContext } from "@app/components/NotificationsContext";
import { AxiosError } from "axios";
export const BulkCopyProgressQueryKey = "bulkcopyprogress";
diff --git a/client/src/app/queries/dependencies.ts b/client/src/app/queries/dependencies.ts
index a32b3f61b5..f65574200a 100644
--- a/client/src/app/queries/dependencies.ts
+++ b/client/src/app/queries/dependencies.ts
@@ -6,7 +6,7 @@ import {
HubRequestParams,
} from "@app/api/models";
import { getAppDependencies, getDependencies } from "@app/api/rest";
-import { serializeRequestParamsForHub } from "@app/shared/hooks/table-controls/getHubRequestParams";
+import { serializeRequestParamsForHub } from "@app/hooks/table-controls/getHubRequestParams";
export interface IDependenciesFetchState {
result: HubPaginatedResult;
diff --git a/client/src/app/queries/issues.ts b/client/src/app/queries/issues.ts
index 490077bf71..e26980147b 100644
--- a/client/src/app/queries/issues.ts
+++ b/client/src/app/queries/issues.ts
@@ -17,7 +17,7 @@ import {
getIssueReports,
getIssue,
} from "@app/api/rest";
-import { serializeRequestParamsForHub } from "@app/shared/hooks/table-controls";
+import { serializeRequestParamsForHub } from "@app/hooks/table-controls";
export const RuleReportsQueryKey = "rulereports";
export const AppReportsQueryKey = "appreports";
diff --git a/client/src/app/rbac.ts b/client/src/app/rbac.ts
index e6ee80c98e..ecb7ec144c 100644
--- a/client/src/app/rbac.ts
+++ b/client/src/app/rbac.ts
@@ -1,4 +1,4 @@
-import { checkAccess } from "./common/rbac-utils";
+import { checkAccess } from "./utils/rbac-utils";
import { isAuthRequired } from "./Constants";
import keycloak from "./keycloak";
interface IRBACProps {
diff --git a/client/src/app/shared/components/app-placeholder/index.ts b/client/src/app/shared/components/app-placeholder/index.ts
deleted file mode 100644
index 1447faf3cc..0000000000
--- a/client/src/app/shared/components/app-placeholder/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { AppPlaceholder } from "./app-placeholder";
diff --git a/client/src/app/shared/components/app-table-action-buttons/index.ts b/client/src/app/shared/components/app-table-action-buttons/index.ts
deleted file mode 100644
index ce458074c6..0000000000
--- a/client/src/app/shared/components/app-table-action-buttons/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { AppTableActionButtons } from "./app-table-action-buttons";
diff --git a/client/src/app/shared/components/app-table-with-controls/index.ts b/client/src/app/shared/components/app-table-with-controls/index.ts
deleted file mode 100644
index b08638c028..0000000000
--- a/client/src/app/shared/components/app-table-with-controls/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { AppTableWithControls } from "./app-table-with-controls";
diff --git a/client/src/app/shared/components/app-table/index.ts b/client/src/app/shared/components/app-table/index.ts
deleted file mode 100644
index 192702d488..0000000000
--- a/client/src/app/shared/components/app-table/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./app-table";
-export { StateError } from "./state-error";
diff --git a/client/src/app/shared/components/breadcrumb-path/index.ts b/client/src/app/shared/components/breadcrumb-path/index.ts
deleted file mode 100644
index 06a5d8684e..0000000000
--- a/client/src/app/shared/components/breadcrumb-path/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { BreadCrumbPath } from "./breadcrumb-path";
diff --git a/client/src/app/shared/components/color/index.ts b/client/src/app/shared/components/color/index.ts
deleted file mode 100644
index 477c4beb43..0000000000
--- a/client/src/app/shared/components/color/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { Color } from "./color";
diff --git a/client/src/app/shared/components/conditional-render/index.ts b/client/src/app/shared/components/conditional-render/index.ts
deleted file mode 100644
index c8384b00c5..0000000000
--- a/client/src/app/shared/components/conditional-render/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { ConditionalRender } from "./conditional-render";
diff --git a/client/src/app/shared/components/confirm-dialog/index.ts b/client/src/app/shared/components/confirm-dialog/index.ts
deleted file mode 100644
index 9c67f45644..0000000000
--- a/client/src/app/shared/components/confirm-dialog/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { ConfirmDialog } from "./confirm-dialog";
diff --git a/client/src/app/shared/components/empty-text-message/index.ts b/client/src/app/shared/components/empty-text-message/index.ts
deleted file mode 100644
index 348ad8392e..0000000000
--- a/client/src/app/shared/components/empty-text-message/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { EmptyTextMessage } from "./empty-text-message";
diff --git a/client/src/app/shared/components/hook-form-pf-fields/index.ts b/client/src/app/shared/components/hook-form-pf-fields/index.ts
deleted file mode 100644
index 8160696225..0000000000
--- a/client/src/app/shared/components/hook-form-pf-fields/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from "./hook-form-pf-group-controller";
-export * from "./hook-form-pf-text-input";
-export * from "./hook-form-pf-text-area";
diff --git a/client/src/app/shared/components/horizontal-nav/index.ts b/client/src/app/shared/components/horizontal-nav/index.ts
deleted file mode 100644
index 6396c183bd..0000000000
--- a/client/src/app/shared/components/horizontal-nav/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { HorizontalNav as Welcome } from "./horizontal-nav";
diff --git a/client/src/app/shared/components/iconed-status/index.ts b/client/src/app/shared/components/iconed-status/index.ts
deleted file mode 100644
index 8b4eb03bae..0000000000
--- a/client/src/app/shared/components/iconed-status/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./iconed-status";
diff --git a/client/src/app/shared/components/index.ts b/client/src/app/shared/components/index.ts
deleted file mode 100644
index 3adc16e64a..0000000000
--- a/client/src/app/shared/components/index.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-export { AppPlaceholder } from "./app-placeholder";
-export { StateError } from "./app-table";
-export { AppTableActionButtons } from "./app-table-action-buttons";
-export { AppTableWithControls } from "./app-table-with-controls";
-export { Color } from "./color";
-export { ConditionalRender } from "./conditional-render";
-export { ConfirmDialog } from "./confirm-dialog";
-export { EmptyTextMessage } from "./empty-text-message";
-export { KebabDropdown } from "./kebab-dropdown";
-export { NoDataEmptyState } from "./no-data-empty-state";
-export { PageHeader } from "./page-header";
-export { ProposedActionLabel } from "./proposed-action-label";
-export { RiskLabel } from "./risk-label";
-export { SimpleEmptyState } from "./simple-empty-state";
-export * from "./simple-select";
-export * from "./iconed-status";
-export { ToolbarBulkSelector } from "./toolbar-bulk-selector";
diff --git a/client/src/app/shared/components/kebab-dropdown/index.ts b/client/src/app/shared/components/kebab-dropdown/index.ts
deleted file mode 100644
index c9d20837b8..0000000000
--- a/client/src/app/shared/components/kebab-dropdown/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { KebabDropdown } from "./kebab-dropdown";
diff --git a/client/src/app/shared/components/menu-actions/index.ts b/client/src/app/shared/components/menu-actions/index.ts
deleted file mode 100644
index 3f0952b2e3..0000000000
--- a/client/src/app/shared/components/menu-actions/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { MenuActions } from "./menu-actions";
diff --git a/client/src/app/shared/components/no-data-empty-state/index.ts b/client/src/app/shared/components/no-data-empty-state/index.ts
deleted file mode 100644
index c1814103eb..0000000000
--- a/client/src/app/shared/components/no-data-empty-state/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { NoDataEmptyState } from "./no-data-empty-state";
diff --git a/client/src/app/shared/components/page-header/index.ts b/client/src/app/shared/components/page-header/index.ts
deleted file mode 100644
index 91010254a7..0000000000
--- a/client/src/app/shared/components/page-header/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { PageHeader } from "./page-header";
diff --git a/client/src/app/shared/components/proposed-action-label/index.ts b/client/src/app/shared/components/proposed-action-label/index.ts
deleted file mode 100644
index 05bd0429fa..0000000000
--- a/client/src/app/shared/components/proposed-action-label/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { ProposedActionLabel } from "./proposed-action-label";
diff --git a/client/src/app/shared/components/risk-label/index.ts b/client/src/app/shared/components/risk-label/index.ts
deleted file mode 100644
index 62a8a3d072..0000000000
--- a/client/src/app/shared/components/risk-label/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { RiskLabel } from "./risk-label";
diff --git a/client/src/app/shared/components/simple-empty-state/index.ts b/client/src/app/shared/components/simple-empty-state/index.ts
deleted file mode 100644
index 10c949ee24..0000000000
--- a/client/src/app/shared/components/simple-empty-state/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { SimpleEmptyState } from "./simple-empty-state";
diff --git a/client/src/app/shared/components/simple-pagination/index.ts b/client/src/app/shared/components/simple-pagination/index.ts
deleted file mode 100644
index 96c2b66d61..0000000000
--- a/client/src/app/shared/components/simple-pagination/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { SimplePagination } from "./simple-pagination";
diff --git a/client/src/app/shared/components/simple-select/index.ts b/client/src/app/shared/components/simple-select/index.ts
deleted file mode 100644
index 439e3d6f8e..0000000000
--- a/client/src/app/shared/components/simple-select/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./simple-select";
diff --git a/client/src/app/shared/components/simple-task-viewer/index.ts b/client/src/app/shared/components/simple-task-viewer/index.ts
deleted file mode 100644
index 942d4ce2bf..0000000000
--- a/client/src/app/shared/components/simple-task-viewer/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./simple-document-viewer";
diff --git a/client/src/app/shared/components/string-list-field/index.ts b/client/src/app/shared/components/string-list-field/index.ts
deleted file mode 100644
index fda5f329f1..0000000000
--- a/client/src/app/shared/components/string-list-field/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./string-list-field";
diff --git a/client/src/app/shared/components/toolbar-bulk-selector/index.ts b/client/src/app/shared/components/toolbar-bulk-selector/index.ts
deleted file mode 100644
index 85e76a8044..0000000000
--- a/client/src/app/shared/components/toolbar-bulk-selector/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { ToolbarBulkSelector } from "./toolbar-bulk-selector";
diff --git a/client/src/app/shared/containers/index.ts b/client/src/app/shared/containers/index.ts
deleted file mode 100644
index a6c24d2478..0000000000
--- a/client/src/app/shared/containers/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { ApplicationDependenciesFormContainer } from "./application-dependencies-form";
diff --git a/client/src/app/test-config/test-utils.tsx b/client/src/app/test-config/test-utils.tsx
index 32d5c727d8..a65555d633 100644
--- a/client/src/app/test-config/test-utils.tsx
+++ b/client/src/app/test-config/test-utils.tsx
@@ -1,8 +1,6 @@
import React, { FC, ReactElement } from "react";
-
import { render, RenderOptions } from "@testing-library/react";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
-import { KeycloakProvider } from "@app/common/KeycloakProvider";
const AllTheProviders: FC<{ children: React.ReactNode }> = ({ children }) => {
const queryClient = new QueryClient();
diff --git a/client/src/app/utils/model-utils.tsx b/client/src/app/utils/model-utils.tsx
index 2e92b23163..03d2d1a6ac 100644
--- a/client/src/app/utils/model-utils.tsx
+++ b/client/src/app/utils/model-utils.tsx
@@ -12,7 +12,8 @@ import {
TagCategory,
TagRef,
} from "@app/api/models";
-import { Color, OptionWithValue } from "@app/shared/components";
+import { Color } from "@app/components/Color";
+import { OptionWithValue } from "@app/components/SimpleSelect";
interface IModel {
id?: string | number;
diff --git a/client/src/app/common/rbac-utils.tsx b/client/src/app/utils/rbac-utils.ts
similarity index 100%
rename from client/src/app/common/rbac-utils.tsx
rename to client/src/app/utils/rbac-utils.ts
diff --git a/client/src/app/common/CustomRules/rules-utils.tsx b/client/src/app/utils/rules-utils.ts
similarity index 100%
rename from client/src/app/common/CustomRules/rules-utils.tsx
rename to client/src/app/utils/rules-utils.ts
diff --git a/client/src/index.tsx b/client/src/index.tsx
index b6bc67ebf8..cd75014e55 100644
--- a/client/src/index.tsx
+++ b/client/src/index.tsx
@@ -5,7 +5,7 @@ import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
import App from "@app/App";
import reportWebVitals from "@app/reportWebVitals";
-import { KeycloakProvider } from "@app/common/KeycloakProvider";
+import { KeycloakProvider } from "@app/components/KeycloakProvider";
const queryClient = new QueryClient();