Alerting: Consistently order member imports in alerting code (#97688)

* Lint import member orders within alerting

* Consistently order member imports in alerting code
This commit is contained in:
Tom Ratcliffe 2024-12-10 17:42:33 +00:00 committed by GitHub
parent e2365ce1c5
commit 4f7ffafe98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
207 changed files with 290 additions and 289 deletions

View File

@ -251,6 +251,7 @@ module.exports = [
},
files: ['public/app/features/alerting/**/*.{ts,tsx,js,jsx}'],
rules: {
'sort-imports': ['error', { ignoreDeclarationSort: true }],
'dot-notation': 'error',
'prefer-const': 'error',
'react/no-unused-prop-types': 'error',

View File

@ -1,6 +1,6 @@
import { PanelModel } from 'app/features/dashboard/state/PanelModel';
import { hiddenReducerTypes, ThresholdMapper } from './ThresholdMapper';
import { ThresholdMapper, hiddenReducerTypes } from './ThresholdMapper';
import alertDef from './alertDef';
const visibleReducerTypes = alertDef.reducerTypes

View File

@ -1,7 +1,7 @@
import { isArray, reduce } from 'lodash';
import { IconName } from '@grafana/ui';
import { QueryPartDef, QueryPart } from 'app/features/alerting/state/query_part';
import { QueryPart, QueryPartDef } from 'app/features/alerting/state/query_part';
const alertQueryDef = new QueryPartDef({
type: 'query',

View File

@ -9,9 +9,9 @@ import {
initialState,
loadAlertRules,
loadedAlertRules,
notificationChannelLoaded,
notificationChannelReducer,
setSearchQuery,
notificationChannelLoaded,
} from './reducers';
describe('Alert rules', () => {

View File

@ -1,4 +1,4 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { PayloadAction, createSlice } from '@reduxjs/toolkit';
import { dateTime } from '@grafana/data';
import {

View File

@ -1,6 +1,6 @@
import { AlertRulesState, StoreState } from 'app/types';
import { getSearchQuery, getAlertRuleItems } from './selectors';
import { getAlertRuleItems, getSearchQuery } from './selectors';
describe('Get search query', () => {
it('should get search query', () => {

View File

@ -8,11 +8,11 @@ import { AccessControlAction } from 'app/types';
import AlertGroups from './AlertGroups';
import { fetchAlertGroups } from './api/alertmanager';
import {
MockDataSourceSrv,
grantUserPermissions,
mockAlertGroup,
mockAlertmanagerAlert,
mockDataSource,
MockDataSourceSrv,
} from './mocks';
import { AlertmanagerProvider } from './state/AlertmanagerContext';
import { DataSourceType } from './utils/datasource';

View File

@ -1,6 +1,6 @@
import { Fragment, useEffect } from 'react';
import { Alert, LoadingPlaceholder, Text, Box } from '@grafana/ui';
import { Alert, Box, LoadingPlaceholder, Text } from '@grafana/ui';
import { useQueryParams } from 'app/core/hooks/useQueryParams';
import { useDispatch } from 'app/types';

View File

@ -4,7 +4,7 @@ import { useEffect, useState } from 'react';
import { useDebounce } from 'react-use';
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
import { Card, FilterInput, Icon, Pagination, Select, TagList, useStyles2, Stack } from '@grafana/ui';
import { Card, FilterInput, Icon, Pagination, Select, Stack, TagList, useStyles2 } from '@grafana/ui';
import { DEFAULT_PER_PAGE_PAGINATION } from 'app/core/constants';
import { getQueryParamValue } from 'app/core/utils/query';
import { FolderState, useDispatch } from 'app/types';

View File

@ -1,7 +1,7 @@
import { dateTime } from '@grafana/data';
import { getBackendSrv } from '@grafana/runtime';
import { isNewUser, USER_CREATION_MIN_DAYS } from './Analytics';
import { USER_CREATION_MIN_DAYS, isNewUser } from './Analytics';
jest.mock('@grafana/runtime', () => ({
...jest.requireActual('@grafana/runtime'),

View File

@ -9,7 +9,7 @@ import { RuleNamespace } from '../../../types/unified-alerting';
import { RulerRulesConfigDTO } from '../../../types/unified-alerting-dto';
import { FilterType } from './components/rules/central-state-history/EventListSceneObject';
import { getSearchFilterFromQuery, RulesFilter } from './search/rulesSearchParser';
import { RulesFilter, getSearchFilterFromQuery } from './search/rulesSearchParser';
import { RuleFormType } from './types/rule-form';
export const USER_CREATION_MIN_DAYS = 7;

View File

@ -14,13 +14,13 @@ import {
RulerRuleDTO,
} from '../../../types/unified-alerting-dto';
import { cloneRuleDefinition, CloneRuleEditor } from './CloneRuleEditor';
import { CloneRuleEditor, cloneRuleDefinition } from './CloneRuleEditor';
import { ExpressionEditorProps } from './components/rule-editor/ExpressionEditor';
import { mockFeatureDiscoveryApi, setupMswServer } from './mockApi';
import {
MockDataSourceSrv,
grantUserPermissions,
mockDataSource,
MockDataSourceSrv,
mockRulerAlertingRule,
mockRulerGrafanaRule,
mockRulerRuleGroup,

View File

@ -1,4 +1,4 @@
import { render, waitFor, screen } from 'test/test-utils';
import { render, screen, waitFor } from 'test/test-utils';
import { DataSourceRef } from '@grafana/schema';
import { AlertQuery } from 'app/types/unified-alerting-dto';

View File

@ -12,10 +12,10 @@ import { CombinedRule } from 'app/types/unified-alerting';
import { AlertDataQuery, AlertQuery } from '../../../types/unified-alerting-dto';
import { isExpressionQuery } from '../../expressions/guards';
import {
downsamplingTypes,
ExpressionQuery,
ExpressionQueryType,
ReducerMode,
downsamplingTypes,
reducerModes,
reducerTypes,
thresholdFunctions,
@ -26,7 +26,7 @@ import alertDef, { EvalFunction } from '../state/alertDef';
import { Spacer } from './components/Spacer';
import { WithReturnButton } from './components/WithReturnButton';
import { ExpressionResult } from './components/expressions/Expression';
import { getThresholdsForQueries, ThresholdDefinition } from './components/rule-editor/util';
import { ThresholdDefinition, getThresholdsForQueries } from './components/rule-editor/util';
import { RuleViewerVisualization } from './components/rule-viewer/RuleViewerVisualization';
import { DatasourceModelPreview } from './components/rule-viewer/tabs/Query/DataSourceModelPreview';
import { AlertRuleAction, useAlertRuleAbility } from './hooks/useAbilities';

View File

@ -1,7 +1,7 @@
import { InitialEntry } from 'history';
import { last } from 'lodash';
import { Route, Routes } from 'react-router-dom-v5-compat';
import { render, within, userEvent, screen } from 'test/test-utils';
import { render, screen, userEvent, within } from 'test/test-utils';
import { byTestId } from 'testing-library-selector';
import { config } from '@grafana/runtime';

View File

@ -1,6 +1,6 @@
import { Route, Routes } from 'react-router-dom-v5-compat';
import { selectOptionInTest } from 'test/helpers/selectOptionInTest';
import { render, screen, waitFor, userEvent } from 'test/test-utils';
import { render, screen, userEvent, waitFor } from 'test/test-utils';
import {
PROVISIONED_MIMIR_ALERTMANAGER_UID,

View File

@ -1,4 +1,4 @@
import { lazy, Suspense } from 'react';
import { Suspense, lazy } from 'react';
import { config } from '@grafana/runtime';

View File

@ -1,4 +1,4 @@
import { Routes, Route } from 'react-router-dom-v5-compat';
import { Route, Routes } from 'react-router-dom-v5-compat';
import { withErrorBoundary } from '@grafana/ui';

View File

@ -18,11 +18,11 @@ import {
import { ExportFormats } from '../components/export/providers';
import { Folder } from '../types/rule-form';
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME, isGrafanaRulesSource } from '../utils/datasource';
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid, isGrafanaRulesSource } from '../utils/datasource';
import { arrayKeyValuesToObject } from '../utils/labels';
import { isCloudRuleIdentifier, isGrafanaRulerRule, isPrometheusRuleIdentifier } from '../utils/rules';
import { alertingApi, WithNotificationOptions } from './alertingApi';
import { WithNotificationOptions, alertingApi } from './alertingApi';
import {
FetchPromRulesFilter,
getRulesFilterSearchParams,

View File

@ -12,7 +12,7 @@ import {
TestReceiversResult,
} from 'app/plugins/datasource/alertmanager/types';
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid } from '../utils/datasource';
// "grafana" for grafana-managed, otherwise a datasource name
export async function fetchAlertManagerConfig(alertManagerSourceName: string): Promise<AlertManagerCortexConfig> {

View File

@ -9,7 +9,7 @@ import {
} from 'app/types/unified-alerting-dto';
import { RULER_NOT_SUPPORTED_MSG } from '../utils/constants';
import { getDataSourceByName, getRulesDataSourceByUID, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
import { GRAFANA_RULES_SOURCE_NAME, getDataSourceByName, getRulesDataSourceByUID } from '../utils/datasource';
import { fetchRules } from './prometheus';
import { fetchTestRulerRulesGroup } from './ruler';

View File

@ -6,9 +6,9 @@ import {
RulesSourceApplication,
} from '../../../../types/unified-alerting-dto';
import {
GRAFANA_RULES_SOURCE_NAME,
getDataSourceUID,
getRulesDataSourceByUID,
GRAFANA_RULES_SOURCE_NAME,
isGrafanaRulesSource,
} from '../utils/datasource';

View File

@ -1,7 +1,7 @@
import { lastValueFrom } from 'rxjs';
import { getBackendSrv } from '@grafana/runtime';
import { ContactPointsState, ReceiversStateDTO, ReceiverState } from 'app/types';
import { ContactPointsState, ReceiverState, ReceiversStateDTO } from 'app/types';
import { getDatasourceAPIUid } from '../utils/datasource';

View File

@ -2,20 +2,20 @@ import { Observable, of } from 'rxjs';
import { catchError, map, share } from 'rxjs/operators';
import {
dataFrameFromJSON,
DataFrameJSON,
getDefaultTimeRange,
LoadingState,
PanelData,
dataFrameFromJSON,
getDefaultTimeRange,
withLoadingIndicator,
} from '@grafana/data';
import { getBackendSrv, toDataQueryError } from '@grafana/runtime';
import {
isCloudPreviewRequest,
isGrafanaPreviewRequest,
PreviewRuleRequest,
PreviewRuleResponse,
isCloudPreviewRequest,
isGrafanaPreviewRequest,
} from '../types/preview';
import { RuleFormType } from '../types/rule-form';
import { GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';

View File

@ -7,11 +7,11 @@ import { RuleGroup, RuleIdentifier, RuleNamespace } from 'app/types/unified-aler
import {
PromAlertingRuleState,
PromRuleGroupDTO,
PromRulesResponse,
PromRuleType,
PromRulesResponse,
} from 'app/types/unified-alerting-dto';
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid } from '../utils/datasource';
import { isCloudRuleIdentifier, isPrometheusRuleIdentifier } from '../utils/rules';
export interface FetchPromRulesFilter {

View File

@ -7,7 +7,7 @@ import { RulerRuleGroupDTO, RulerRulesConfigDTO } from 'app/types/unified-alerti
import { containsPathSeparator } from '../components/rule-editor/util';
import { RULER_NOT_SUPPORTED_MSG } from '../utils/constants';
import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';
import { GRAFANA_RULES_SOURCE_NAME, getDatasourceAPIUid } from '../utils/datasource';
import { getRulesFilterSearchParams } from './prometheus';

View File

@ -1,6 +1,6 @@
import { css } from '@emotion/css';
import { forwardRef, FC } from 'react';
import { createFilter, GroupBase, OptionsOrGroups } from 'react-select';
import { FC, forwardRef } from 'react';
import { GroupBase, OptionsOrGroups, createFilter } from 'react-select';
import { SelectableValue } from '@grafana/data';
import { Field, Select, useStyles2 } from '@grafana/ui';

View File

@ -1,4 +1,4 @@
import { screen, render, waitFor } from '@testing-library/react';
import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { AlertLabels } from './AlertLabels';

View File

@ -1,5 +1,5 @@
import { css } from '@emotion/css';
import { useMemo, ComponentProps } from 'react';
import { ComponentProps, useMemo } from 'react';
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
import { InlineField, Select, SelectMenuOptions, useStyles2 } from '@grafana/ui';

View File

@ -1,6 +1,6 @@
import { HTMLAttributes } from 'react';
import { IconSize, Button } from '@grafana/ui';
import { Button, IconSize } from '@grafana/ui';
interface Props extends HTMLAttributes<HTMLButtonElement> {
isCollapsed: boolean;

View File

@ -1,4 +1,4 @@
import { cloneElement, forwardRef, Ref } from 'react';
import { Ref, cloneElement, forwardRef } from 'react';
interface ConditionalWrapProps {
shouldWrap: boolean;

View File

@ -5,7 +5,7 @@ import { Editor } from 'slate-react';
import { GrafanaTheme2 } from '@grafana/data';
import { promqlGrammar } from '@grafana/prometheus';
import { makeValue, SlatePrism, useStyles2 } from '@grafana/ui';
import { SlatePrism, makeValue, useStyles2 } from '@grafana/ui';
import LogqlSyntax from 'app/plugins/datasource/loki/syntax';
import { RulesSource } from 'app/types/unified-alerting';

View File

@ -1,10 +1,10 @@
import { css } from '@emotion/css';
import { Placement } from '@popperjs/core';
import classnames from 'classnames';
import { cloneElement, ReactElement, ReactNode, useRef } from 'react';
import { ReactElement, ReactNode, cloneElement, useRef } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { Popover as GrafanaPopover, PopoverController, useStyles2, Stack } from '@grafana/ui';
import { Popover as GrafanaPopover, PopoverController, Stack, useStyles2 } from '@grafana/ui';
export interface PopupCardProps {
children: ReactElement;

View File

@ -1,7 +1,7 @@
import { css, cx } from '@emotion/css';
import { ComponentProps, HTMLAttributes } from 'react';
import { Icon, IconName, useStyles2, Text, Stack } from '@grafana/ui';
import { Icon, IconName, Stack, Text, useStyles2 } from '@grafana/ui';
interface Props extends HTMLAttributes<HTMLDivElement> {
icon?: IconName;

View File

@ -1,4 +1,4 @@
import { forwardRef, Ref } from 'react';
import { Ref, forwardRef } from 'react';
import { Button, ButtonProps, Icon, Stack } from '@grafana/ui';

View File

@ -1,10 +1,10 @@
import { screen, render } from 'test/test-utils';
import { render, screen } from 'test/test-utils';
import { setupMswServer } from 'app/features/alerting/unified/mockApi';
import { SupportedPlugin } from '../types/pluginBridges';
import { createBridgeURL, PluginBridge } from './PluginBridge';
import { PluginBridge, createBridgeURL } from './PluginBridge';
const NON_EXISTING_PLUGIN = '__does_not_exist__';
setupMswServer();

View File

@ -5,7 +5,7 @@ import { GrafanaTheme2 } from '@grafana/data';
import { Badge, useStyles2 } from '@grafana/ui';
import { PopupCard } from './HoverCard';
import { keywords as KEYWORDS, builtinFunctions as FUNCTIONS } from './receivers/editor/language';
import { builtinFunctions as FUNCTIONS, keywords as KEYWORDS } from './receivers/editor/language';
const VARIABLES = ['$', '.', '"'];

View File

@ -1,4 +1,4 @@
import { cx, css } from '@emotion/css';
import { css, cx } from '@emotion/css';
import * as React from 'react';
import { GrafanaTheme2 } from '@grafana/data';

View File

@ -3,7 +3,7 @@ import { css } from '@emotion/css';
import { GrafanaTheme2 } from '@grafana/data';
import { LinkButton, useStyles2 } from '@grafana/ui';
import { contextSrv } from 'app/core/services/context_srv';
import { AlertmanagerAlert, AlertState } from 'app/plugins/datasource/alertmanager/types';
import { AlertState, AlertmanagerAlert } from 'app/plugins/datasource/alertmanager/types';
import { AccessControlAction } from 'app/types';
import { AlertmanagerAction } from '../../hooks/useAbilities';

View File

@ -2,7 +2,7 @@ import { css } from '@emotion/css';
import { useState } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { useStyles2, Stack, TextLink } from '@grafana/ui';
import { Stack, TextLink, useStyles2 } from '@grafana/ui';
import { AlertmanagerGroup } from 'app/plugins/datasource/alertmanager/types';
import { createContactPointSearchLink } from '../../utils/misc';

View File

@ -4,7 +4,7 @@ import { useState } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { Button, useStyles2 } from '@grafana/ui';
import { useQueryParams } from 'app/core/hooks/useQueryParams';
import { AlertmanagerGroup, AlertState } from 'app/plugins/datasource/alertmanager/types';
import { AlertState, AlertmanagerGroup } from 'app/plugins/datasource/alertmanager/types';
import { getFiltersFromUrlParams } from '../../utils/misc';

View File

@ -1,7 +1,7 @@
import pluralize from 'pluralize';
import { useStyles2 } from '@grafana/ui';
import { AlertmanagerGroup, AlertState } from 'app/plugins/datasource/alertmanager/types';
import { AlertState, AlertmanagerGroup } from 'app/plugins/datasource/alertmanager/types';
import { getNotificationsTextColors } from '../../styles/notifications';

View File

@ -1,5 +1,5 @@
import { SelectableValue } from '@grafana/data';
import { RadioButtonGroup, Label, Tooltip, Icon } from '@grafana/ui';
import { Icon, Label, RadioButtonGroup, Tooltip } from '@grafana/ui';
import { AlertState } from 'app/plugins/datasource/alertmanager/types';
interface Props {

View File

@ -5,7 +5,7 @@ import { useDebounce } from 'react-use';
import { GrafanaTheme2 } from '@grafana/data';
import { Field, Icon, Input, Label, Stack, Tooltip, useStyles2 } from '@grafana/ui';
import { logInfo, LogMessages } from '../../Analytics';
import { LogMessages, logInfo } from '../../Analytics';
import { parsePromQLStyleMatcherLoose } from '../../utils/matchers';
interface Props {

View File

@ -2,7 +2,7 @@ import { css } from '@emotion/css';
import { groupBy, size, upperFirst } from 'lodash';
import { Fragment, ReactNode } from 'react';
import { dateTime, GrafanaTheme2 } from '@grafana/data';
import { GrafanaTheme2, dateTime } from '@grafana/data';
import { Icon, Stack, Text, Tooltip, useStyles2 } from '@grafana/ui';
import { Trans } from 'app/core/internationalization';
import { PrimaryText } from 'app/features/alerting/unified/components/common/TextVariants';
@ -19,7 +19,7 @@ import { ReceiverMetadataBadge } from '../receivers/grafanaAppReceivers/Receiver
import { ReceiverPluginMetadata } from '../receivers/grafanaAppReceivers/useReceiversMetadata';
import { RECEIVER_META_KEY, RECEIVER_PLUGIN_META_KEY, RECEIVER_STATUS_KEY } from './constants';
import { ContactPointWithMetadata, getReceiverDescription, ReceiverConfigWithMetadata } from './utils';
import { ContactPointWithMetadata, ReceiverConfigWithMetadata, getReceiverDescription } from './utils';
interface ContactPointProps {
contactPoint: ContactPointWithMetadata;

View File

@ -3,7 +3,7 @@ import { Fragment, useState } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { Dropdown, LinkButton, Menu, Stack, Text, TextLink, Tooltip, useStyles2 } from '@grafana/ui';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import ConditionalWrap from 'app/features/alerting/unified/components/ConditionalWrap';
import { useExportContactPoint } from 'app/features/alerting/unified/components/contact-points/useExportContactPoint';
import { ManagePermissionsDrawer } from 'app/features/alerting/unified/components/permissions/ManagePermissions';

View File

@ -15,7 +15,7 @@ import {
withErrorBoundary,
} from '@grafana/ui';
import { contextSrv } from 'app/core/core';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import { shouldUseK8sApi } from 'app/features/alerting/unified/utils/k8s/utils';
import { makeAMLink, stringifyErrorLike } from 'app/features/alerting/unified/utils/misc';
import { AccessControlAction } from 'app/types';

View File

@ -1,5 +1,5 @@
import 'core-js/stable/structured-clone';
import { Routes, Route } from 'react-router-dom-v5-compat';
import { Route, Routes } from 'react-router-dom-v5-compat';
import { clickSelectOption } from 'test/helpers/selectOptionInTest';
import { render, screen } from 'test/test-utils';

View File

@ -1,4 +1,4 @@
import { http, HttpResponse } from 'msw';
import { HttpResponse, http } from 'msw';
import { SetupServer } from 'msw/node';
import { AlertManagerCortexConfig } from 'app/plugins/datasource/alertmanager/types';

View File

@ -1,4 +1,4 @@
import { http, HttpResponse } from 'msw';
import { HttpResponse, http } from 'msw';
import { SetupServer } from 'msw/node';
import { AlertmanagerStatus } from 'app/plugins/datasource/alertmanager/types';

View File

@ -17,7 +17,7 @@ import { OnCallIntegrationDTO } from '../../api/onCallApi';
import { computeInheritedTree } from '../../utils/notification-policies';
import { extractReceivers } from '../../utils/receivers';
import { ReceiverTypes } from '../receivers/grafanaAppReceivers/onCall/onCall';
import { getOnCallMetadata, ReceiverPluginMetadata } from '../receivers/grafanaAppReceivers/useReceiversMetadata';
import { ReceiverPluginMetadata, getOnCallMetadata } from '../receivers/grafanaAppReceivers/useReceiversMetadata';
import { RECEIVER_META_KEY, RECEIVER_PLUGIN_META_KEY, RECEIVER_STATUS_KEY } from './constants';

View File

@ -7,7 +7,7 @@ import AutoSizer from 'react-virtualized-auto-sizer';
import { GrafanaTheme2 } from '@grafana/data';
import { Alert, Button, ClipboardButton, CodeEditor, TextLink, useStyles2 } from '@grafana/ui';
import { allGrafanaExportProviders, ExportFormats, ExportProvider, ProvisioningType } from './providers';
import { ExportFormats, ExportProvider, ProvisioningType, allGrafanaExportProviders } from './providers';
interface FileExportPreviewProps {
format: ExportFormats;

View File

@ -1,7 +1,7 @@
import * as React from 'react';
import { Routes, Route } from 'react-router-dom-v5-compat';
import { Route, Routes } from 'react-router-dom-v5-compat';
import { Props } from 'react-virtualized-auto-sizer';
import { render, waitFor, waitForElementToBeRemoved, userEvent } from 'test/test-utils';
import { render, userEvent, waitFor, waitForElementToBeRemoved } from 'test/test-utils';
import { byRole, byTestId, byText } from 'testing-library-selector';
import { mockExportApi, setupMswServer } from '../../mockApi';

View File

@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface MuteTimingsExporterPreviewProps {
exportFormat: ExportFormats;
onClose: () => void;

View File

@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface GrafanaPoliciesPreviewProps {
exportFormat: ExportFormats;
onClose: () => void;

View File

@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface GrafanaReceiverExportPreviewProps {
exportFormat: ExportFormats;

View File

@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface GrafanaReceiversExportPreviewProps {
exportFormat: ExportFormats;

View File

@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface GrafanaRuleExportPreviewProps {
alertUid: string;

View File

@ -7,7 +7,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface GrafanaRuleFolderExporterProps {
folder: FolderDTO;

View File

@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface GrafanaRuleGroupExporterProps {
folderUid: string;

View File

@ -6,7 +6,7 @@ import { alertRuleApi } from '../../api/alertRuleApi';
import { FileExportPreview } from './FileExportPreview';
import { GrafanaExportDrawer } from './GrafanaExportDrawer';
import { allGrafanaExportProviders, ExportFormats } from './providers';
import { ExportFormats, allGrafanaExportProviders } from './providers';
interface GrafanaRulesExporterProps {
onClose: () => void;

View File

@ -3,8 +3,8 @@ import { uniqueId } from 'lodash';
import { FC, useCallback, useState } from 'react';
import { useFormContext } from 'react-hook-form';
import { DataFrame, dateTimeFormat, GrafanaTheme2, isTimeSeriesFrames, LoadingState, PanelData } from '@grafana/data';
import { Alert, AutoSizeInput, Button, clearButtonStyles, IconButton, Stack, Text, useStyles2 } from '@grafana/ui';
import { DataFrame, GrafanaTheme2, LoadingState, PanelData, dateTimeFormat, isTimeSeriesFrames } from '@grafana/data';
import { Alert, AutoSizeInput, Button, IconButton, Stack, Text, clearButtonStyles, useStyles2 } from '@grafana/ui';
import { ClassicConditions } from 'app/features/expressions/components/ClassicConditions';
import { Math } from 'app/features/expressions/components/Math';
import { Reduce } from 'app/features/expressions/components/Reduce';

View File

@ -8,7 +8,7 @@ import { Button, Field, FieldSet, Icon, InlineSwitch, Input, Stack, useStyles2 }
import { useAlertmanager } from '../../state/AlertmanagerContext';
import { MuteTimingFields } from '../../types/mute-timing-form';
import { DAYS_OF_THE_WEEK, defaultTimeInterval, MONTHS, validateArrayField } from '../../utils/mute-timings';
import { DAYS_OF_THE_WEEK, MONTHS, defaultTimeInterval, validateArrayField } from '../../utils/mute-timings';
import { MuteTimingTimeRange } from './MuteTimingTimeRange';
import { TimezoneSelect } from './timezones';

View File

@ -2,7 +2,7 @@ import { css, cx, keyframes } from '@emotion/css';
import { useMemo, useState } from 'react';
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
import { Select, SelectCommonProps, Stack, Alert, IconButton, Text, useStyles2 } from '@grafana/ui';
import { Alert, IconButton, Select, SelectCommonProps, Stack, Text, useStyles2 } from '@grafana/ui';
import { ContactPointReceiverSummary } from 'app/features/alerting/unified/components/contact-points/ContactPoint';
import { useAlertmanager } from 'app/features/alerting/unified/state/AlertmanagerContext';

View File

@ -1,5 +1,5 @@
import { ReactNode, useState } from 'react';
import { useForm, Controller } from 'react-hook-form';
import { Controller, useForm } from 'react-hook-form';
import { Collapse, Field, Link, MultiSelect, useStyles2 } from '@grafana/ui';
import { ContactPointSelector } from 'app/features/alerting/unified/components/notification-policies/ContactPointSelector';
@ -13,8 +13,8 @@ import {
mapMultiSelectValueToStrings,
promDurationValidator,
repeatIntervalValidator,
stringsToSelectableValues,
stringToSelectableValue,
stringsToSelectableValues,
} from '../../utils/amroutes';
import { makeAMLink } from '../../utils/misc';

View File

@ -1,6 +1,6 @@
import { css } from '@emotion/css';
import { ReactNode, useState } from 'react';
import { useForm, Controller, useFieldArray } from 'react-hook-form';
import { Controller, useFieldArray, useForm } from 'react-hook-form';
import { GrafanaTheme2 } from '@grafana/data';
import {

View File

@ -3,7 +3,7 @@ import { take, takeRight, uniqueId } from 'lodash';
import { FC } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { getTagColorsFromName, useStyles2, Stack } from '@grafana/ui';
import { Stack, getTagColorsFromName, useStyles2 } from '@grafana/ui';
import { ObjectMatcher } from 'app/plugins/datasource/alertmanager/types';
import { MatcherFormatter, matcherFormatter } from '../../utils/matchers';

View File

@ -3,7 +3,7 @@ import { FC, useCallback, useMemo, useState } from 'react';
import { Button, Icon, Modal, ModalProps, Spinner, Stack } from '@grafana/ui';
import { Trans } from 'app/core/internationalization';
import { AlertmanagerGroup, AlertState, ObjectMatcher, RouteWithID } from 'app/plugins/datasource/alertmanager/types';
import { AlertState, AlertmanagerGroup, ObjectMatcher, RouteWithID } from 'app/plugins/datasource/alertmanager/types';
import { FormAmRoute } from '../../types/amroutes';
import { MatcherFormatter } from '../../utils/matchers';

View File

@ -1,7 +1,7 @@
import { renderHook, screen, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { first, noop } from 'lodash';
import { Routes, Route } from 'react-router-dom-v5-compat';
import { Route, Routes } from 'react-router-dom-v5-compat';
import { render } from 'test/test-utils';
import { config } from '@grafana/runtime';

View File

@ -1,5 +1,5 @@
import { Alert } from '@grafana/ui';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import { stringifyErrorLike } from '../../utils/misc';

View File

@ -7,7 +7,7 @@ import { DashboardModel } from 'app/features/dashboard/state/DashboardModel';
import { PanelModel } from 'app/features/dashboard/state/PanelModel';
import { useSelector } from 'app/types';
import { logInfo, LogMessages } from '../../Analytics';
import { LogMessages, logInfo } from '../../Analytics';
import { panelToRuleFormValues } from '../../utils/rule-form';
interface Props {

View File

@ -1,8 +1,8 @@
import { useState, ComponentProps } from 'react';
import { ComponentProps, useState } from 'react';
import { Button, Drawer } from '@grafana/ui';
import { Permissions } from 'app/core/components/AccessControl';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
type ButtonProps = { onClick: () => void };

View File

@ -6,14 +6,14 @@ import { FixedSizeList } from 'react-window';
import { GrafanaTheme2 } from '@grafana/data';
import {
Button,
clearButtonStyles,
FilterInput,
Icon,
LoadingPlaceholder,
Modal,
Tooltip,
useStyles2,
Icon,
Tag,
Tooltip,
clearButtonStyles,
useStyles2,
} from '@grafana/ui';
import { AlertmanagerAlert, TestTemplateAlert } from 'app/plugins/datasource/alertmanager/types';

View File

@ -1,6 +1,6 @@
import { useForm, FormProvider } from 'react-hook-form';
import { FormProvider, useForm } from 'react-hook-form';
import { Alert, Button, Stack, LinkButton } from '@grafana/ui';
import { Alert, Button, LinkButton, Stack } from '@grafana/ui';
import { useCleanup } from 'app/core/hooks/useCleanup';
import { AlertManagerCortexConfig } from 'app/plugins/datasource/alertmanager/types';
import { useDispatch } from 'app/types';

View File

@ -1,4 +1,4 @@
import { Routes, Route } from 'react-router-dom-v5-compat';
import { Route, Routes } from 'react-router-dom-v5-compat';
import { render, screen } from 'test/test-utils';
import { byLabelText, byPlaceholderText, byRole, byTestId } from 'testing-library-selector';

View File

@ -4,7 +4,7 @@ import { Link } from 'react-router-dom-v5-compat';
import { useToggle } from 'react-use';
import { GrafanaTheme2 } from '@grafana/data';
import { Button, Dropdown, Icon, Menu, MenuItem, useStyles2, Stack } from '@grafana/ui';
import { Button, Dropdown, Icon, Menu, MenuItem, Stack, useStyles2 } from '@grafana/ui';
import { GrafanaReceiversExporter } from '../export/GrafanaReceiversExporter';

View File

@ -2,7 +2,7 @@ import { css } from '@emotion/css';
import * as React from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { useStyles2, Stack } from '@grafana/ui';
import { Stack, useStyles2 } from '@grafana/ui';
import { PopupCard } from '../HoverCard';

View File

@ -3,7 +3,7 @@
*
* It includes auto-complete for template data and syntax highlighting
*/
import { editor, IDisposable } from 'monaco-editor';
import { IDisposable, editor } from 'monaco-editor';
import { useEffect, useRef } from 'react';
import { CodeEditor } from '@grafana/ui';

View File

@ -26,7 +26,7 @@ import {
} from '@grafana/ui';
import { useAppNotification } from 'app/core/copy/appNotification';
import { useCleanup } from 'app/core/hooks/useCleanup';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import { ActiveTab as ContactPointsActiveTabs } from 'app/features/alerting/unified/components/contact-points/ContactPoints';
import { TestTemplateAlert } from 'app/plugins/datasource/alertmanager/types';

View File

@ -1,7 +1,7 @@
import { default as React } from 'react';
import { FormProvider, useForm } from 'react-hook-form';
import { Provider } from 'react-redux';
import { screen, render, waitFor } from 'test/test-utils';
import { render, screen, waitFor } from 'test/test-utils';
import { byRole } from 'testing-library-selector';
import { Components } from '@grafana/e2e-selectors';
@ -10,12 +10,12 @@ import { configureStore } from 'app/store/configureStore';
import { TemplatePreviewResponse } from '../../api/templateApi';
import {
REJECTED_PREVIEW_RESPONSE,
mockPreviewTemplateResponse,
mockPreviewTemplateResponseRejected,
REJECTED_PREVIEW_RESPONSE,
} from '../../mocks/templatesApi';
import { defaults, TemplateFormValues } from './TemplateForm';
import { TemplateFormValues, defaults } from './TemplateForm';
import { TemplatePreview } from './TemplatePreview';
jest.mock(

View File

@ -3,7 +3,7 @@ import { Fragment, useState } from 'react';
import { logError } from '@grafana/runtime';
import { Badge, ConfirmModal, Tooltip, useStyles2 } from '@grafana/ui';
import { useAppNotification } from 'app/core/copy/appNotification';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import { CodeText } from 'app/features/alerting/unified/components/common/TextVariants';
import { GRAFANA_RULES_SOURCE_NAME } from 'app/features/alerting/unified/utils/datasource';

View File

@ -1,13 +1,13 @@
import { concat } from 'lodash';
import type { languages, editor, Position, IRange, IDisposable } from 'monaco-editor/esm/vs/editor/editor.api';
import type { IDisposable, IRange, Position, editor, languages } from 'monaco-editor/esm/vs/editor/editor.api';
import type { Monaco } from '@grafana/ui';
import { getAlertManagerSuggestions } from './alertManagerSuggestions';
import { SuggestionDefinition } from './suggestionDefinition';
import {
getAlertsSuggestions,
getAlertSuggestions,
getAlertsSuggestions,
getGlobalSuggestions,
getKeyValueSuggestions,
getSnippetsSuggestions,

View File

@ -1,4 +1,4 @@
import { FieldError, DeepMap, useFormContext } from 'react-hook-form';
import { DeepMap, FieldError, useFormContext } from 'react-hook-form';
import { Button, useStyles2 } from '@grafana/ui';
import { useControlledFieldArray } from 'app/features/alerting/unified/hooks/useControlledFieldArray';

View File

@ -1,5 +1,5 @@
import { useState } from 'react';
import { FieldError, DeepMap, useFormContext } from 'react-hook-form';
import { DeepMap, FieldError, useFormContext } from 'react-hook-form';
import { Button, useStyles2 } from '@grafana/ui';
import { NotificationChannelOption, NotificationChannelSecureFields } from 'app/types';

View File

@ -12,7 +12,7 @@ import { PROVENANCE_NONE } from 'app/features/alerting/unified/utils/k8s/constan
import { DEFAULT_TEMPLATES } from 'app/features/alerting/unified/utils/template-constants';
import { AccessControlAction, NotificationChannelOption } from 'app/types';
import { getTemplateOptions, TemplatesPicker } from './TemplateSelector';
import { TemplatesPicker, getTemplateOptions } from './TemplateSelector';
import { parseTemplates } from './utils';
const alertmanagerConfigMock = getAlertmanagerConfig(GRAFANA_RULES_SOURCE_NAME);

View File

@ -1,7 +1,7 @@
import { css } from '@emotion/css';
import { GrafanaTheme2 } from '@grafana/data';
import { Icon, LinkButton, Tooltip, useStyles2, Stack } from '@grafana/ui';
import { Icon, LinkButton, Stack, Tooltip, useStyles2 } from '@grafana/ui';
import { ReceiverPluginMetadata } from './useReceiversMetadata';

View File

@ -1,4 +1,4 @@
import { renderHook, waitFor, getWrapper } from 'test/test-utils';
import { getWrapper, renderHook, waitFor } from 'test/test-utils';
import { setupMswServer } from 'app/features/alerting/unified/mockApi';
import { disablePlugin } from 'app/features/alerting/unified/mocks/server/configure';

View File

@ -1,6 +1,6 @@
import { FieldArrayWithId, useFormContext, Controller } from 'react-hook-form';
import { Controller, FieldArrayWithId, useFormContext } from 'react-hook-form';
import { Text, Stack } from '@grafana/ui';
import { Stack, Text } from '@grafana/ui';
import { RuleFormValues } from '../../types/rule-form';
import { Annotation, annotationDescriptions, annotationLabels } from '../../utils/constants';

View File

@ -1,6 +1,6 @@
import userEvent from '@testing-library/user-event';
import { FormProvider, useForm } from 'react-hook-form';
import { screen, render, within } from 'test/test-utils';
import { render, screen, within } from 'test/test-utils';
import { byRole, byTestId } from 'testing-library-selector';
import { DashboardSearchItemType } from '../../../../search/types';

View File

@ -6,7 +6,7 @@ import { useToggle } from 'react-use';
import { GrafanaTheme2 } from '@grafana/data';
import { Button, Field, Input, Stack, Text, TextArea, useStyles2 } from '@grafana/ui';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import { DashboardModel } from '../../../../dashboard/state/DashboardModel';
import { RuleFormValues } from '../../types/rule-form';
@ -15,7 +15,7 @@ import { isGrafanaManagedRuleByType } from '../../utils/rules';
import AnnotationHeaderField from './AnnotationHeaderField';
import DashboardAnnotationField from './DashboardAnnotationField';
import { DashboardPicker, getVisualPanels, PanelDTO } from './DashboardPicker';
import { DashboardPicker, PanelDTO, getVisualPanels } from './DashboardPicker';
import { NeedHelpInfo } from './NeedHelpInfo';
import { RuleEditorSection } from './RuleEditorSection';
import { useDashboardQuery } from './useDashboardQuery';

View File

@ -9,12 +9,12 @@ import { GrafanaTheme2 } from '@grafana/data/src';
import {
Alert,
Button,
clearButtonStyles,
FilterInput,
Icon,
LoadingPlaceholder,
Modal,
Tooltip,
clearButtonStyles,
useStyles2,
} from '@grafana/ui';

View File

@ -1,6 +1,6 @@
import { render, screen, userEvent } from 'test/test-utils';
import { getEvaluationGroupOptions, EvaluationGroupQuickPick } from './EvaluationGroupQuickPick';
import { EvaluationGroupQuickPick, getEvaluationGroupOptions } from './EvaluationGroupQuickPick';
describe('EvaluationGroupQuickPick', () => {
it('should render the correct default preset, set active element and allow selecting another option', async () => {

View File

@ -21,11 +21,11 @@ import {
Tooltip,
useStyles2,
} from '@grafana/ui';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import { CombinedRuleGroup, CombinedRuleNamespace } from 'app/types/unified-alerting';
import { RulerRuleGroupDTO, RulerRulesConfigDTO } from 'app/types/unified-alerting-dto';
import { logInfo, LogMessages } from '../../Analytics';
import { LogMessages, logInfo } from '../../Analytics';
import { alertRuleApi } from '../../api/alertRuleApi';
import { GRAFANA_RULER_CONFIG } from '../../api/featureDiscoveryApi';
import { useCombinedRuleNamespaces } from '../../hooks/useCombinedRuleNamespaces';

View File

@ -2,7 +2,7 @@ import { useState } from 'react';
import { useFormContext } from 'react-hook-form';
import { Stack, Text } from '@grafana/ui';
import { t, Trans } from 'app/core/internationalization';
import { Trans, t } from 'app/core/internationalization';
import { KBObjectArray, RuleFormValues } from '../../types/rule-form';
import { GRAFANA_RULES_SOURCE_NAME } from '../../utils/datasource';

View File

@ -1,9 +1,9 @@
import { css } from '@emotion/css';
import { useMemo } from 'react';
import { useFormContext, Controller } from 'react-hook-form';
import { Controller, useFormContext } from 'react-hook-form';
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
import { Field, useStyles2, VirtualizedSelect } from '@grafana/ui';
import { Field, VirtualizedSelect, useStyles2 } from '@grafana/ui';
import { RuleFormValues } from '../../types/rule-form';

View File

@ -1,7 +1,7 @@
import { css } from '@emotion/css';
import { GrafanaTheme2 } from '@grafana/data';
import { Icon, Text, Toggletip, useStyles2, Stack } from '@grafana/ui';
import { Icon, Stack, Text, Toggletip, useStyles2 } from '@grafana/ui';
interface NeedHelpInfoProps {
contentText: string | JSX.Element;

View File

@ -5,7 +5,7 @@ import { useFormContext } from 'react-hook-form';
import { useMountedState } from 'react-use';
import { takeWhile } from 'rxjs/operators';
import { dateTimeFormatISO, GrafanaTheme2, LoadingState } from '@grafana/data';
import { GrafanaTheme2, LoadingState, dateTimeFormatISO } from '@grafana/data';
import { getDataSourceSrv } from '@grafana/runtime';
import { Alert, Button, Stack, useStyles2 } from '@grafana/ui';

View File

@ -1,9 +1,9 @@
import { css } from '@emotion/css';
import { useState } from 'react';
import { dateTime, getDefaultRelativeTimeRange, GrafanaTheme2, RelativeTimeRange } from '@grafana/data';
import { GrafanaTheme2, RelativeTimeRange, dateTime, getDefaultRelativeTimeRange } from '@grafana/data';
import { relativeToTimeRange } from '@grafana/data/src/datetime/rangeutil';
import { clearButtonStyles, Icon, InlineField, RelativeTimeRangePicker, Toggletip, useStyles2 } from '@grafana/ui';
import { Icon, InlineField, RelativeTimeRangePicker, Toggletip, clearButtonStyles, useStyles2 } from '@grafana/ui';
import { AlertQuery } from 'app/types/unified-alerting-dto';
import { AlertQueryOptions, MaxDataPointsOption, MinIntervalOption } from './QueryWrapper';

View File

@ -1,15 +1,15 @@
import { DragDropContext, Droppable, DropResult } from '@hello-pangea/dnd';
import { DragDropContext, DropResult, Droppable } from '@hello-pangea/dnd';
import { omit } from 'lodash';
import { PureComponent, useState } from 'react';
import {
DataQuery,
DataSourceInstanceSettings,
getDataSourceRef,
LoadingState,
PanelData,
rangeUtil,
RelativeTimeRange,
getDataSourceRef,
rangeUtil,
} from '@grafana/data';
import { getDataSourceSrv } from '@grafana/runtime';
import { Button, Card, Icon, Stack } from '@grafana/ui';

View File

@ -2,7 +2,7 @@ import { css } from '@emotion/css';
import { FC, useEffect, useState } from 'react';
import { useAsync } from 'react-use';
import { PanelData, CoreApp, GrafanaTheme2, LoadingState } from '@grafana/data';
import { CoreApp, GrafanaTheme2, LoadingState, PanelData } from '@grafana/data';
import { getDataSourceSrv } from '@grafana/runtime';
import { DataQuery } from '@grafana/schema';
import { useStyles2 } from '@grafana/ui';

Some files were not shown because too many files have changed in this diff Show More