[APM] Move react component from /shared folder if only consumed once (#151288)

Many components in `/shared` are not well suited for re-use and only
consumed by a single component. In those cases it's better to move them
back to where they are consumed to keep things co-located.
This commit is contained in:
Søren Louv-Jansen 2023-02-20 11:34:27 +01:00 committed by GitHub
parent f6bb0f4fcc
commit 82c0d6c234
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 90 additions and 90 deletions

View file

@ -14,7 +14,7 @@ import { getNodeName, NodeType } from '../../../../../common/connections';
import { useApmParams } from '../../../../hooks/use_apm_params';
import { useFetcher } from '../../../../hooks/use_fetcher';
import { useTimeRange } from '../../../../hooks/use_time_range';
import { DependencyLink } from '../../../shared/dependency_link';
import { DependencyLink } from '../../../shared/links/dependency_link';
import { DependenciesTable } from '../../../shared/dependencies_table';
export function DependenciesInventoryTable() {

View file

@ -12,7 +12,7 @@ import {
kueryBarPlaceholder,
} from '../../../../common/dependencies';
import { useApmParams } from '../../../hooks/use_apm_params';
import { SearchBar } from '../../shared/search_bar';
import { SearchBar } from '../../shared/search_bar/search_bar';
import { DependenciesInventoryTable } from './dependencies_inventory_table';
export function DependenciesInventory() {

View file

@ -17,7 +17,7 @@ import { useDependencyDetailOperationsBreadcrumb } from '../../../hooks/use_depe
import { FETCH_STATUS, useFetcher } from '../../../hooks/use_fetcher';
import { useTimeRange } from '../../../hooks/use_time_range';
import { DependencyMetricCharts } from '../../shared/dependency_metric_charts';
import { DetailViewHeader } from '../../shared/detail_view_header';
import { DetailViewHeader } from './detail_view_header';
import { ResettingHeightRetainer } from '../../shared/height_retainer/resetting_height_container';
import { push, replace } from '../../shared/links/url_helpers';
import { SortFunction } from '../../shared/managed_table';

View file

@ -26,7 +26,7 @@ import { usePreferredDataSourceAndBucketSize } from '../../../hooks/use_preferre
import { useProgressiveFetcher } from '../../../hooks/use_progressive_fetcher';
import { useTimeRange } from '../../../hooks/use_time_range';
import { MLCallout, shouldDisplayMlCallout } from '../../shared/ml_callout';
import { SearchBar } from '../../shared/search_bar';
import { SearchBar } from '../../shared/search_bar/search_bar';
import { isTimeComparison } from '../../shared/time_comparison/get_comparison_options';
import { ServiceList } from './service_list';
import { orderServiceItems } from './service_list/order_service_items';

View file

@ -29,7 +29,7 @@ import { EmptyPrompt } from './empty_prompt';
import { Popover } from './popover';
import { TimeoutPrompt } from './timeout_prompt';
import { useRefDimensions } from './use_ref_dimensions';
import { SearchBar } from '../../shared/search_bar';
import { SearchBar } from '../../shared/search_bar/search_bar';
import { useServiceName } from '../../../hooks/use_service_name';
import { useApmParams, useAnyOfApmParams } from '../../../hooks/use_apm_params';
import { Environment } from '../../../../common/environment_rt';

View file

@ -16,7 +16,7 @@ import { useApmServiceContext } from '../../../../context/apm_service/use_apm_se
import { useApmParams } from '../../../../hooks/use_apm_params';
import { useFetcher } from '../../../../hooks/use_fetcher';
import { useTimeRange } from '../../../../hooks/use_time_range';
import { DependencyLink } from '../../../shared/dependency_link';
import { DependencyLink } from '../../../shared/links/dependency_link';
import { DependenciesTable } from '../../../shared/dependencies_table';
import { ServiceLink } from '../../../shared/links/apm/service_link';

View file

@ -22,7 +22,7 @@ import { FormattedMessage } from '@kbn/i18n-react';
import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context';
import { IndexLifecyclePhaseSelect } from './index_lifecycle_phase_select';
import { ServicesTable } from './services_table';
import { SearchBar } from '../../shared/search_bar';
import { SearchBar } from '../../shared/search_bar/search_bar';
import { StorageChart } from './storage_chart';
import { PermissionDenied } from './prompts/permission_denied';
import { useFetcher, FETCH_STATUS } from '../../../hooks/use_fetcher';

View file

@ -8,7 +8,7 @@
import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
import React from 'react';
import { useApmParams } from '../../../hooks/use_apm_params';
import { SearchBar } from '../../shared/search_bar';
import { SearchBar } from '../../shared/search_bar/search_bar';
import { TraceList } from './trace_list';
import { useFallbackToTransactionsFetcher } from '../../../hooks/use_fallback_to_transactions_fetcher';
import { AggregatedTransactionsBadge } from '../../shared/aggregated_transactions_badge';

View file

@ -19,7 +19,7 @@ import { NOT_AVAILABLE_LABEL } from '../../../../../../../../common/i18n';
import { Span } from '../../../../../../../../typings/es_schemas/ui/span';
import { Transaction } from '../../../../../../../../typings/es_schemas/ui/transaction';
import { useAnyOfApmParams } from '../../../../../../../hooks/use_apm_params';
import { DependencyLink } from '../../../../../../shared/dependency_link';
import { DependencyLink } from '../../../../../../shared/links/dependency_link';
import { TransactionDetailLink } from '../../../../../../shared/links/apm/transaction_detail_link';
import { ServiceLink } from '../../../../../../shared/links/apm/service_link';
import { StickyProperties } from '../../../../../../shared/sticky_properties';

View file

@ -14,9 +14,9 @@ import {
import { i18n } from '@kbn/i18n';
import React, { useState } from 'react';
import { IBasePath } from '@kbn/core/public';
import { ApmRuleType } from '../../../../common/rules/apm_rule_types';
import { AlertingFlyout } from '../../alerting/ui_components/alerting_flyout';
import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context';
import { ApmRuleType } from '../../../../../common/rules/apm_rule_types';
import { AlertingFlyout } from '../../../alerting/ui_components/alerting_flyout';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
const alertLabel = i18n.translate('xpack.apm.home.alertsMenu.alerts', {
defaultMessage: 'Alerts and rules',

View file

@ -9,12 +9,12 @@ import { fireEvent, render, waitFor } from '@testing-library/react';
import { createMemoryHistory } from 'history';
import React from 'react';
import { EuiThemeProvider } from '@kbn/kibana-react-plugin/common';
import { ApmMlJob } from '../../../../common/anomaly_detection/apm_ml_job';
import { getAnomalyDetectionSetupState } from '../../../../common/anomaly_detection/get_anomaly_detection_setup_state';
import { ENVIRONMENT_ALL } from '../../../../common/environment_filter_values';
import * as hooks from '../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context';
import { MockApmPluginContextWrapper } from '../../../context/apm_plugin/mock_apm_plugin_context';
import { FETCH_STATUS } from '../../../hooks/use_fetcher';
import { ApmMlJob } from '../../../../../common/anomaly_detection/apm_ml_job';
import { getAnomalyDetectionSetupState } from '../../../../../common/anomaly_detection/get_anomaly_detection_setup_state';
import { ENVIRONMENT_ALL } from '../../../../../common/environment_filter_values';
import * as hooks from '../../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context';
import { MockApmPluginContextWrapper } from '../../../../context/apm_plugin/mock_apm_plugin_context';
import { FETCH_STATUS } from '../../../../hooks/use_fetcher';
import { AnomalyDetectionSetupLink } from './anomaly_detection_setup_link';
async function renderTooltipAnchor({

View file

@ -10,16 +10,16 @@ import { IconType } from '@elastic/eui';
import { EuiHeaderLink, EuiIcon, EuiToolTip } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { AnomalyDetectionSetupState } from '../../../../common/anomaly_detection/get_anomaly_detection_setup_state';
import { AnomalyDetectionSetupState } from '../../../../../common/anomaly_detection/get_anomaly_detection_setup_state';
import {
ENVIRONMENT_ALL,
getEnvironmentLabel,
} from '../../../../common/environment_filter_values';
import { useAnomalyDetectionJobsContext } from '../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context';
import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context';
import { useApmParams } from '../../../hooks/use_apm_params';
import { useTheme } from '../../../hooks/use_theme';
import { getLegacyApmHref } from '../links/apm/apm_link';
} from '../../../../../common/environment_filter_values';
import { useAnomalyDetectionJobsContext } from '../../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
import { useApmParams } from '../../../../hooks/use_apm_params';
import { useTheme } from '../../../../hooks/use_theme';
import { getLegacyApmHref } from '../../../shared/links/apm/apm_link';
export function AnomalyDetectionSetupLink() {
const { query } = useApmParams('/*');

View file

@ -14,12 +14,12 @@ import {
import { apmLabsButton } from '@kbn/observability-plugin/common';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { getAlertingCapabilities } from '../../alerting/utils/get_alerting_capabilities';
import { getLegacyApmHref } from '../links/apm/apm_link';
import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context';
import { getAlertingCapabilities } from '../../../alerting/utils/get_alerting_capabilities';
import { getLegacyApmHref } from '../../../shared/links/apm/apm_link';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
import { AlertingPopoverAndFlyout } from './alerting_popover_flyout';
import { AnomalyDetectionSetupLink } from './anomaly_detection_setup_link';
import { useServiceName } from '../../../hooks/use_service_name';
import { useServiceName } from '../../../../hooks/use_service_name';
import { InspectorHeaderLink } from './inspector_header_link';
import { Labs } from './labs';

View file

@ -13,7 +13,7 @@ import {
enableInspectEsQueries,
useInspectorContext,
} from '@kbn/observability-plugin/public';
import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
export function InspectorHeaderLink() {
const { inspector } = useApmPluginContext();

View file

@ -24,9 +24,9 @@ import {
import { LazyField } from '@kbn/advanced-settings-plugin/public';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
import { useApmEditableSettings } from '../../../../hooks/use_apm_editable_settings';
import { useFetcher, isPending } from '../../../../hooks/use_fetcher';
import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context';
import { useApmEditableSettings } from '../../../../../hooks/use_apm_editable_settings';
import { useFetcher, isPending } from '../../../../../hooks/use_fetcher';
interface Props {
onClose: () => void;

View file

@ -21,26 +21,26 @@ import { euiDarkVars, euiLightVars } from '@kbn/ui-theme';
import React from 'react';
import { Route } from '@kbn/shared-ux-router';
import { DefaultTheme, ThemeProvider } from 'styled-components';
import { AnomalyDetectionJobsContextProvider } from '../../context/anomaly_detection_jobs/anomaly_detection_jobs_context';
import { AnomalyDetectionJobsContextProvider } from '../../../context/anomaly_detection_jobs/anomaly_detection_jobs_context';
import {
ApmPluginContext,
ApmPluginContextValue,
} from '../../context/apm_plugin/apm_plugin_context';
import { useApmPluginContext } from '../../context/apm_plugin/use_apm_plugin_context';
import { BreadcrumbsContextProvider } from '../../context/breadcrumbs/context';
import { LicenseProvider } from '../../context/license/license_context';
import { TimeRangeIdContextProvider } from '../../context/time_range_id/time_range_id_context';
import { UrlParamsProvider } from '../../context/url_params_context/url_params_context';
import { ApmPluginStartDeps } from '../../plugin';
import { ScrollToTopOnPathChange } from '../app/main/scroll_to_top_on_path_change';
import { ApmHeaderActionMenu } from '../shared/apm_header_action_menu';
import { RedirectWithDefaultDateRange } from '../shared/redirect_with_default_date_range';
import { RedirectWithDefaultEnvironment } from '../shared/redirect_with_default_environment';
import { RedirectWithOffset } from '../shared/redirect_with_offset';
import { ApmErrorBoundary } from './apm_error_boundary';
import { apmRouter } from './apm_route_config';
import { RedirectDependenciesToDependenciesInventory } from './home/redirect_dependencies_to_dependencies_inventory';
import { TrackPageview } from './track_pageview';
} from '../../../context/apm_plugin/apm_plugin_context';
import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context';
import { BreadcrumbsContextProvider } from '../../../context/breadcrumbs/context';
import { LicenseProvider } from '../../../context/license/license_context';
import { TimeRangeIdContextProvider } from '../../../context/time_range_id/time_range_id_context';
import { UrlParamsProvider } from '../../../context/url_params_context/url_params_context';
import { ApmPluginStartDeps } from '../../../plugin';
import { ScrollToTopOnPathChange } from './scroll_to_top_on_path_change';
import { ApmHeaderActionMenu } from './apm_header_action_menu';
import { RedirectWithDefaultDateRange } from './redirect_with_default_date_range';
import { RedirectWithDefaultEnvironment } from './redirect_with_default_environment';
import { RedirectWithOffset } from './redirect_with_offset';
import { ApmErrorBoundary } from '../apm_error_boundary';
import { apmRouter } from '../apm_route_config';
import { RedirectDependenciesToDependenciesInventory } from './redirect_dependencies_to_dependencies_inventory';
import { TrackPageview } from '../track_pageview';
const storage = new Storage(localStorage);

View file

@ -6,9 +6,9 @@
*/
import { ReactElement } from 'react';
import { useLocation } from 'react-router-dom';
import { useApmRouter } from '../../../hooks/use_apm_router';
import { useDateRangeRedirect } from '../../../hooks/use_date_range_redirect';
import { isRouteWithTimeRange } from '../is_route_with_time_range';
import { useApmRouter } from '../../../../hooks/use_apm_router';
import { useDateRangeRedirect } from '../../../../hooks/use_date_range_redirect';
import { isRouteWithTimeRange } from '../../../shared/is_route_with_time_range';
// This is a top-level component that blocks rendering of the routes
// if there is no valid date range, and redirects to one if needed.

View file

@ -10,9 +10,9 @@ import { render } from '@testing-library/react';
import { createMemoryHistory, Location, MemoryHistory } from 'history';
import qs from 'query-string';
import { RedirectWithDefaultEnvironment } from '.';
import { apmRouter } from '../../routing/apm_route_config';
import * as useApmPluginContextExports from '../../../context/apm_plugin/use_apm_plugin_context';
import { ENVIRONMENT_ALL } from '../../../../common/environment_filter_values';
import { apmRouter } from '../../apm_route_config';
import * as useApmPluginContextExports from '../../../../context/apm_plugin/use_apm_plugin_context';
import { ENVIRONMENT_ALL } from '../../../../../common/environment_filter_values';
describe('RedirectWithDefaultEnvironment', () => {
let history: MemoryHistory;

View file

@ -8,7 +8,7 @@
import { useLocation, Redirect } from 'react-router-dom';
import qs from 'query-string';
import React from 'react';
import { useDefaultEnvironment } from '../../../hooks/use_default_environment';
import { useDefaultEnvironment } from '../../../../hooks/use_default_environment';
export function RedirectWithDefaultEnvironment({
children,

View file

@ -10,9 +10,9 @@ import { render } from '@testing-library/react';
import { createMemoryHistory, Location, MemoryHistory } from 'history';
import qs from 'query-string';
import { RedirectWithOffset } from '.';
import { apmRouter } from '../../routing/apm_route_config';
import * as useApmPluginContextExports from '../../../context/apm_plugin/use_apm_plugin_context';
import { TimeRangeComparisonEnum } from '../time_comparison/get_comparison_options';
import { apmRouter } from '../../apm_route_config';
import * as useApmPluginContextExports from '../../../../context/apm_plugin/use_apm_plugin_context';
import { TimeRangeComparisonEnum } from '../../../shared/time_comparison/get_comparison_options';
describe('RedirectWithOffset', () => {
let history: MemoryHistory;

View file

@ -8,16 +8,16 @@
import { useLocation } from 'react-router-dom';
import qs from 'query-string';
import React from 'react';
import { useApmRouter } from '../../../hooks/use_apm_router';
import { isRouteWithComparison } from '../is_route_with_time_range';
import { useApmRouter } from '../../../../hooks/use_apm_router';
import { isRouteWithComparison } from '../../../shared/is_route_with_time_range';
import {
TimeRangeComparisonEnum,
dayAndWeekBeforeToOffset,
} from '../time_comparison/get_comparison_options';
import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context';
import { getComparisonEnabled } from '../time_comparison/get_comparison_enabled';
import { toBoolean } from '../../../context/url_params_context/helpers';
import { RenderRedirectTo } from '../../routing/redirect_to';
} from '../../../shared/time_comparison/get_comparison_options';
import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context';
import { getComparisonEnabled } from '../../../shared/time_comparison/get_comparison_enabled';
import { toBoolean } from '../../../../context/url_params_context/helpers';
import { RenderRedirectTo } from '../../redirect_to';
export function RedirectWithOffset({
children,

View file

@ -40,7 +40,7 @@ import { useTimeRange } from '../../../../hooks/use_time_range';
import { getAlertingCapabilities } from '../../../alerting/utils/get_alerting_capabilities';
import { BetaBadge } from '../../../shared/beta_badge';
import { replace } from '../../../shared/links/url_helpers';
import { SearchBar } from '../../../shared/search_bar';
import { SearchBar } from '../../../shared/search_bar/search_bar';
import { ServiceIcons } from '../../../shared/service_icons';
import { TechnicalPreviewBadge } from '../../../shared/technical_preview_badge';
import { ApmMainTemplate } from '../apm_main_template';

View file

@ -18,7 +18,7 @@ import { useApmRoutePath } from '../../../hooks/use_apm_route_path';
import { useFetcher } from '../../../hooks/use_fetcher';
import { useTimeRange } from '../../../hooks/use_time_range';
import { BetaBadge } from '../../shared/beta_badge';
import { SearchBar } from '../../shared/search_bar';
import { SearchBar } from '../../shared/search_bar/search_bar';
import { SpanIcon } from '../../shared/span_icon';
import { ApmMainTemplate } from './apm_main_template';

View file

@ -7,7 +7,7 @@
import { Story } from '@storybook/react';
import React, { ComponentProps, ComponentType } from 'react';
import { MockApmPluginStorybook } from '../../context/apm_plugin/mock_apm_plugin_storybook';
import { MockApmPluginStorybook } from '../../../context/apm_plugin/mock_apm_plugin_storybook';
import { DependencyLink } from './dependency_link';
type Args = ComponentProps<typeof DependencyLink>;

View file

@ -9,10 +9,10 @@ import { EuiFlexGroup, EuiFlexItem, EuiLink } from '@elastic/eui';
import { TypeOf } from '@kbn/typed-react-router-config';
import React from 'react';
import { euiStyled } from '@kbn/kibana-react-plugin/common';
import { useApmRouter } from '../../hooks/use_apm_router';
import { truncate } from '../../utils/style';
import { ApmRoutes } from '../routing/apm_route_config';
import { SpanIcon } from './span_icon';
import { useApmRouter } from '../../../hooks/use_apm_router';
import { truncate } from '../../../utils/style';
import { ApmRoutes } from '../../routing/apm_route_config';
import { SpanIcon } from '../span_icon';
const StyledLink = euiStyled(EuiLink)`${truncate('100%')};`;

View file

@ -10,15 +10,15 @@ import { createMemoryHistory, MemoryHistory } from 'history';
import React from 'react';
import { Router } from 'react-router-dom';
import { createKibanaReactContext } from '@kbn/kibana-react-plugin/public';
import { MockApmPluginContextWrapper } from '../../context/apm_plugin/mock_apm_plugin_context';
import { ApmServiceContextProvider } from '../../context/apm_service/apm_service_context';
import { UrlParamsProvider } from '../../context/url_params_context/url_params_context';
import type { ApmUrlParams } from '../../context/url_params_context/types';
import * as useFetcherHook from '../../hooks/use_fetcher';
import * as useApmDataViewHook from '../../hooks/use_apm_data_view';
import * as useServiceTransactionTypesHook from '../../context/apm_service/use_service_transaction_types_fetcher';
import { renderWithTheme } from '../../utils/test_helpers';
import { fromQuery } from './links/url_helpers';
import { MockApmPluginContextWrapper } from '../../../context/apm_plugin/mock_apm_plugin_context';
import { ApmServiceContextProvider } from '../../../context/apm_service/apm_service_context';
import { UrlParamsProvider } from '../../../context/url_params_context/url_params_context';
import type { ApmUrlParams } from '../../../context/url_params_context/types';
import * as useFetcherHook from '../../../hooks/use_fetcher';
import * as useApmDataViewHook from '../../../hooks/use_apm_data_view';
import * as useServiceTransactionTypesHook from '../../../context/apm_service/use_service_transaction_types_fetcher';
import { renderWithTheme } from '../../../utils/test_helpers';
import { fromQuery } from '../links/url_helpers';
import { CoreStart } from '@kbn/core/public';
import { SearchBar } from './search_bar';

View file

@ -13,13 +13,13 @@ import {
EuiSpacer,
} from '@elastic/eui';
import React from 'react';
import { isMobileAgentName } from '../../../common/agent_name';
import { useApmServiceContext } from '../../context/apm_service/use_apm_service_context';
import { useBreakpoints } from '../../hooks/use_breakpoints';
import { ApmDatePicker } from './date_picker/apm_date_picker';
import { KueryBar } from './kuery_bar';
import { TimeComparison } from './time_comparison';
import { TransactionTypeSelect } from './transaction_type_select';
import { isMobileAgentName } from '../../../../common/agent_name';
import { useApmServiceContext } from '../../../context/apm_service/use_apm_service_context';
import { useBreakpoints } from '../../../hooks/use_breakpoints';
import { ApmDatePicker } from '../date_picker/apm_date_picker';
import { KueryBar } from '../kuery_bar';
import { TimeComparison } from '../time_comparison';
import { TransactionTypeSelect } from '../transaction_type_select';
interface Props {
hidden?: boolean;