From 703476b3ae517cfc4c9d15cb6d057fd91a051773 Mon Sep 17 00:00:00 2001 From: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com> Date: Thu, 2 Apr 2020 16:18:06 +0200 Subject: [PATCH] Forms migration: Input namespace (#23286) * Update exports * Add LegacyForms namespace * Update ci grep --- packages/grafana-ui/src/components/Input/Input.tsx | 12 ++++++------ packages/grafana-ui/src/components/index.ts | 9 +++++++-- .../core/components/PasswordInput/PasswordInput.tsx | 3 ++- public/app/features/admin/UserProfile.tsx | 10 +++++----- public/app/features/api-keys/ApiKeysPage.tsx | 3 ++- .../components/ShareModal/ShareSnapshot.tsx | 4 ++-- .../dashboard/panel_editor/DataSourceOption.tsx | 3 ++- .../features/dashboard/panel_editor/QueryOptions.tsx | 11 ++++++----- .../features/datasources/settings/BasicSettings.tsx | 3 ++- public/app/features/folders/FolderSettingsPage.tsx | 3 ++- public/app/features/org/OrgProfile.tsx | 3 ++- public/app/features/profile/UserProfileEditForm.tsx | 3 ++- public/app/features/teams/TeamGroupSync.tsx | 3 ++- public/app/features/teams/TeamSettings.tsx | 3 ++- .../datasource/cloudwatch/components/Alias.tsx | 3 ++- .../cloudwatch/components/ConfigEditor.tsx | 4 ++-- .../datasource/cloudwatch/components/QueryEditor.tsx | 3 ++- .../elasticsearch/configuration/ElasticDetails.tsx | 4 ++-- .../components/AzureCredentialsForm.tsx | 4 ++-- .../components/InsightsConfig.tsx | 3 ++- .../datasource/influxdb/components/ConfigEditor.tsx | 4 ++-- .../opentsdb/components/OpenTsdbDetails.tsx | 4 ++-- .../prometheus/configuration/PromSettings.tsx | 4 ++-- .../stackdriver/components/AnnotationQueryEditor.tsx | 3 ++- .../app/plugins/panel/graph2/GraphLegendEditor.tsx | 3 ++- scripts/ci-frontend-metrics.sh | 6 ++++-- 26 files changed, 70 insertions(+), 48 deletions(-) diff --git a/packages/grafana-ui/src/components/Input/Input.tsx b/packages/grafana-ui/src/components/Input/Input.tsx index 3d1870ccda4..3f110995d79 100644 --- a/packages/grafana-ui/src/components/Input/Input.tsx +++ b/packages/grafana-ui/src/components/Input/Input.tsx @@ -3,7 +3,7 @@ import classNames from 'classnames'; import { validate, EventsWithValidation, hasValidationEvent } from '../../utils'; import { ValidationEvents, ValidationRule } from '../../types'; -export enum InputStatus { +export enum LegacyInputStatus { Invalid = 'invalid', Valid = 'valid', } @@ -14,9 +14,9 @@ interface Props extends React.HTMLProps { inputRef?: React.LegacyRef; // Override event props and append status as argument - onBlur?: (event: React.FocusEvent, status?: InputStatus) => void; - onFocus?: (event: React.FocusEvent, status?: InputStatus) => void; - onChange?: (event: React.ChangeEvent, status?: InputStatus) => void; + onBlur?: (event: React.FocusEvent, status?: LegacyInputStatus) => void; + onFocus?: (event: React.FocusEvent, status?: LegacyInputStatus) => void; + onChange?: (event: React.ChangeEvent, status?: LegacyInputStatus) => void; } interface State { @@ -33,11 +33,11 @@ export class Input extends PureComponent { }; get status() { - return this.state.error ? InputStatus.Invalid : InputStatus.Valid; + return this.state.error ? LegacyInputStatus.Invalid : LegacyInputStatus.Valid; } get isInvalid() { - return this.status === InputStatus.Invalid; + return this.status === LegacyInputStatus.Invalid; } validatorAsync = (validationRules: ValidationRule[]) => { diff --git a/packages/grafana-ui/src/components/index.ts b/packages/grafana-ui/src/components/index.ts index 6394e6b72ce..78a0344a94c 100644 --- a/packages/grafana-ui/src/components/index.ts +++ b/packages/grafana-ui/src/components/index.ts @@ -26,7 +26,6 @@ export { EmptySearchResult } from './EmptySearchResult/EmptySearchResult'; export { PieChart, PieChartType } from './PieChart/PieChart'; export { UnitPicker } from './UnitPicker/UnitPicker'; export { StatsPicker } from './StatsPicker/StatsPicker'; -export { Input, InputStatus } from './Input/Input'; export { RefreshPicker } from './RefreshPicker/RefreshPicker'; export { TimePicker } from './TimePicker/TimePicker'; export { TimeOfDayPicker } from './TimePicker/TimeOfDayPicker'; @@ -148,12 +147,18 @@ import { IndicatorsContainer } from './Forms/Legacy/Select/IndicatorsContainer'; import { NoOptionsMessage } from './Forms/Legacy/Select/NoOptionsMessage'; import { ButtonSelect } from './Forms/Legacy/Select/ButtonSelect'; +//Input +import { Input, LegacyInputStatus } from './Input/Input'; +// Export these until Enterprise migrations have been merged +// export { Input, InputStatus} + const LegacyForms = { Select, AsyncSelect, IndicatorsContainer, NoOptionsMessage, ButtonSelect, + Input, }; -export { LegacyForms }; +export { LegacyForms, LegacyInputStatus }; diff --git a/public/app/core/components/PasswordInput/PasswordInput.tsx b/public/app/core/components/PasswordInput/PasswordInput.tsx index cd485ed55f1..a4a4f3bf873 100644 --- a/public/app/core/components/PasswordInput/PasswordInput.tsx +++ b/public/app/core/components/PasswordInput/PasswordInput.tsx @@ -1,5 +1,6 @@ import React, { ChangeEvent, forwardRef } from 'react'; -import { Input, FormLabel } from '@grafana/ui'; +import { LegacyForms, FormLabel } from '@grafana/ui'; +const { Input } = LegacyForms; export interface Props { label: string; diff --git a/public/app/features/admin/UserProfile.tsx b/public/app/features/admin/UserProfile.tsx index fba3241687a..a2cd91760f1 100644 --- a/public/app/features/admin/UserProfile.tsx +++ b/public/app/features/admin/UserProfile.tsx @@ -3,7 +3,7 @@ import { UserDTO } from 'app/types'; import { cx, css } from 'emotion'; import { config } from 'app/core/config'; import { GrafanaTheme } from '@grafana/data'; -import { ConfirmButton, ConfirmModal, InputStatus, Button, stylesFactory, Forms } from '@grafana/ui'; +import { ConfirmButton, ConfirmModal, LegacyInputStatus, Button, stylesFactory, Forms } from '@grafana/ui'; interface Props { user: UserDTO; @@ -217,16 +217,16 @@ export class UserProfileRow extends PureComponent, status?: InputStatus) => { - if (status === InputStatus.Invalid) { + onInputChange = (event: React.ChangeEvent, status?: LegacyInputStatus) => { + if (status === LegacyInputStatus.Invalid) { return; } this.setState({ value: event.target.value }); }; - onInputBlur = (event: React.FocusEvent, status?: InputStatus) => { - if (status === InputStatus.Invalid) { + onInputBlur = (event: React.FocusEvent, status?: LegacyInputStatus) => { + if (status === LegacyInputStatus.Invalid) { return; } diff --git a/public/app/features/api-keys/ApiKeysPage.tsx b/public/app/features/api-keys/ApiKeysPage.tsx index a78a87cac78..7fd6fbd417f 100644 --- a/public/app/features/api-keys/ApiKeysPage.tsx +++ b/public/app/features/api-keys/ApiKeysPage.tsx @@ -13,7 +13,8 @@ import ApiKeysAddedModal from './ApiKeysAddedModal'; import config from 'app/core/config'; import appEvents from 'app/core/app_events'; import EmptyListCTA from 'app/core/components/EmptyListCTA/EmptyListCTA'; -import { DeleteButton, EventsWithValidation, FormLabel, Input, Switch, ValidationEvents } from '@grafana/ui'; +import { DeleteButton, EventsWithValidation, FormLabel, LegacyForms, Switch, ValidationEvents } from '@grafana/ui'; +const { Input } = LegacyForms; import { dateTime, isDateTime, NavModel } from '@grafana/data'; import { FilterInput } from 'app/core/components/FilterInput/FilterInput'; import { store } from 'app/store/store'; diff --git a/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx b/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx index 91e41bcb035..e4f3e3363ed 100644 --- a/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx +++ b/public/app/features/dashboard/components/ShareModal/ShareSnapshot.tsx @@ -1,6 +1,6 @@ import React, { PureComponent } from 'react'; -import { Button, ClipboardButton, Input, LinkButton, LegacyForms } from '@grafana/ui'; -const { Select } = LegacyForms; +import { Button, ClipboardButton, LinkButton, LegacyForms } from '@grafana/ui'; +const { Select, Input } = LegacyForms; import { AppEvents, SelectableValue } from '@grafana/data'; import { getBackendSrv } from '@grafana/runtime'; import { DashboardModel, PanelModel } from 'app/features/dashboard/state'; diff --git a/public/app/features/dashboard/panel_editor/DataSourceOption.tsx b/public/app/features/dashboard/panel_editor/DataSourceOption.tsx index f5edb6843b0..934366ce698 100644 --- a/public/app/features/dashboard/panel_editor/DataSourceOption.tsx +++ b/public/app/features/dashboard/panel_editor/DataSourceOption.tsx @@ -1,5 +1,6 @@ import React, { FC, ChangeEvent } from 'react'; -import { FormLabel, Input } from '@grafana/ui'; +import { FormLabel, LegacyForms } from '@grafana/ui'; +const { Input } = LegacyForms; interface Props { label: string; diff --git a/public/app/features/dashboard/panel_editor/QueryOptions.tsx b/public/app/features/dashboard/panel_editor/QueryOptions.tsx index aefeda46a44..17dc0a7ccc5 100644 --- a/public/app/features/dashboard/panel_editor/QueryOptions.tsx +++ b/public/app/features/dashboard/panel_editor/QueryOptions.tsx @@ -5,8 +5,9 @@ import React, { PureComponent, ChangeEvent, FocusEvent, ReactText } from 'react' import { rangeUtil, DataSourceSelectItem } from '@grafana/data'; // Components -import { EventsWithValidation, Input, InputStatus, Switch, ValidationEvents, FormLabel } from '@grafana/ui'; +import { EventsWithValidation, LegacyInputStatus, LegacyForms, Switch, ValidationEvents, FormLabel } from '@grafana/ui'; import { DataSourceOption } from './DataSourceOption'; +const { Input } = LegacyForms; // Types import { PanelModel } from '../state'; @@ -109,21 +110,21 @@ export class QueryOptions extends PureComponent { }); }; - onOverrideTime = (event: FocusEvent, status: InputStatus) => { + onOverrideTime = (event: FocusEvent, status: LegacyInputStatus) => { const { value } = event.target; const { panel } = this.props; const emptyToNullValue = emptyToNull(value); - if (status === InputStatus.Valid && panel.timeFrom !== emptyToNullValue) { + if (status === LegacyInputStatus.Valid && panel.timeFrom !== emptyToNullValue) { panel.timeFrom = emptyToNullValue; panel.refresh(); } }; - onTimeShift = (event: FocusEvent, status: InputStatus) => { + onTimeShift = (event: FocusEvent, status: LegacyInputStatus) => { const { value } = event.target; const { panel } = this.props; const emptyToNullValue = emptyToNull(value); - if (status === InputStatus.Valid && panel.timeShift !== emptyToNullValue) { + if (status === LegacyInputStatus.Valid && panel.timeShift !== emptyToNullValue) { panel.timeShift = emptyToNullValue; panel.refresh(); } diff --git a/public/app/features/datasources/settings/BasicSettings.tsx b/public/app/features/datasources/settings/BasicSettings.tsx index 216900498fe..3619800f60f 100644 --- a/public/app/features/datasources/settings/BasicSettings.tsx +++ b/public/app/features/datasources/settings/BasicSettings.tsx @@ -1,5 +1,6 @@ import React, { FC } from 'react'; -import { FormLabel, Input, Switch } from '@grafana/ui'; +import { FormLabel, LegacyForms, Switch } from '@grafana/ui'; +const { Input } = LegacyForms; import { e2e } from '@grafana/e2e'; export interface Props { diff --git a/public/app/features/folders/FolderSettingsPage.tsx b/public/app/features/folders/FolderSettingsPage.tsx index 214544c27e4..64ad8b73ba7 100644 --- a/public/app/features/folders/FolderSettingsPage.tsx +++ b/public/app/features/folders/FolderSettingsPage.tsx @@ -2,7 +2,8 @@ import React, { PureComponent } from 'react'; import { hot } from 'react-hot-loader'; import { connect } from 'react-redux'; import { NavModel } from '@grafana/data'; -import { Input } from '@grafana/ui'; +import { LegacyForms } from '@grafana/ui'; +const { Input } = LegacyForms; import Page from 'app/core/components/Page/Page'; import appEvents from 'app/core/app_events'; import { getNavModel } from 'app/core/selectors/navModel'; diff --git a/public/app/features/org/OrgProfile.tsx b/public/app/features/org/OrgProfile.tsx index c3a8198a659..165ad082202 100644 --- a/public/app/features/org/OrgProfile.tsx +++ b/public/app/features/org/OrgProfile.tsx @@ -1,5 +1,6 @@ import React, { ChangeEvent, FC } from 'react'; -import { Input } from '@grafana/ui'; +import { LegacyForms } from '@grafana/ui'; +const { Input } = LegacyForms; export interface Props { orgName: string; diff --git a/public/app/features/profile/UserProfileEditForm.tsx b/public/app/features/profile/UserProfileEditForm.tsx index 4b196ef089f..c1cffc3026a 100644 --- a/public/app/features/profile/UserProfileEditForm.tsx +++ b/public/app/features/profile/UserProfileEditForm.tsx @@ -1,5 +1,6 @@ import React, { PureComponent, ChangeEvent, MouseEvent } from 'react'; -import { Button, FormLabel, Input, Tooltip } from '@grafana/ui'; +import { Button, FormLabel, LegacyForms, Tooltip } from '@grafana/ui'; +const { Input } = LegacyForms; import { User } from 'app/types'; import config from 'app/core/config'; import { ProfileUpdateFields } from 'app/core/utils/UserProvider'; diff --git a/public/app/features/teams/TeamGroupSync.tsx b/public/app/features/teams/TeamGroupSync.tsx index 0c41e3e5065..84100a421e8 100644 --- a/public/app/features/teams/TeamGroupSync.tsx +++ b/public/app/features/teams/TeamGroupSync.tsx @@ -2,7 +2,8 @@ import React, { PureComponent } from 'react'; import { connect } from 'react-redux'; import { SlideDown } from 'app/core/components/Animations/SlideDown'; -import { Input, Tooltip } from '@grafana/ui'; +import { LegacyForms, Tooltip } from '@grafana/ui'; +const { Input } = LegacyForms; import { TeamGroup } from '../../types'; import { addTeamGroup, loadTeamGroups, removeTeamGroup } from './state/actions'; diff --git a/public/app/features/teams/TeamSettings.tsx b/public/app/features/teams/TeamSettings.tsx index 5d9109b4d16..248b3b16a6e 100644 --- a/public/app/features/teams/TeamSettings.tsx +++ b/public/app/features/teams/TeamSettings.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; -import { FormLabel, Input } from '@grafana/ui'; +import { FormLabel, LegacyForms } from '@grafana/ui'; +const { Input } = LegacyForms; import { SharedPreferences } from 'app/core/components/SharedPreferences/SharedPreferences'; import { updateTeam } from './state/actions'; diff --git a/public/app/plugins/datasource/cloudwatch/components/Alias.tsx b/public/app/plugins/datasource/cloudwatch/components/Alias.tsx index 3115783c570..f665289ed03 100644 --- a/public/app/plugins/datasource/cloudwatch/components/Alias.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/Alias.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent, useState } from 'react'; import { debounce } from 'lodash'; -import { Input } from '@grafana/ui'; +import { LegacyForms } from '@grafana/ui'; +const { Input } = LegacyForms; export interface Props { onChange: (alias: any) => void; diff --git a/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx index afad8a79585..59a2c747127 100644 --- a/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx @@ -1,6 +1,6 @@ import React, { PureComponent } from 'react'; -import { FormLabel, LegacyForms, Input, Button } from '@grafana/ui'; -const { Select } = LegacyForms; +import { FormLabel, LegacyForms, Button } from '@grafana/ui'; +const { Select, Input } = LegacyForms; import { DataSourcePluginOptionsEditorProps, onUpdateDatasourceJsonDataOptionSelect, diff --git a/public/app/plugins/datasource/cloudwatch/components/QueryEditor.tsx b/public/app/plugins/datasource/cloudwatch/components/QueryEditor.tsx index aeb4b1cad17..1d866b8c2fc 100644 --- a/public/app/plugins/datasource/cloudwatch/components/QueryEditor.tsx +++ b/public/app/plugins/datasource/cloudwatch/components/QueryEditor.tsx @@ -1,6 +1,7 @@ import React, { PureComponent, ChangeEvent } from 'react'; import { ExploreQueryFieldProps } from '@grafana/data'; -import { Input, ValidationEvents, EventsWithValidation, Switch } from '@grafana/ui'; +import { LegacyForms, ValidationEvents, EventsWithValidation, Switch } from '@grafana/ui'; +const { Input } = LegacyForms; import isEmpty from 'lodash/isEmpty'; import { CloudWatchQuery } from '../types'; import CloudWatchDatasource from '../datasource'; diff --git a/public/app/plugins/datasource/elasticsearch/configuration/ElasticDetails.tsx b/public/app/plugins/datasource/elasticsearch/configuration/ElasticDetails.tsx index 5127bd500d1..f1db4a82276 100644 --- a/public/app/plugins/datasource/elasticsearch/configuration/ElasticDetails.tsx +++ b/public/app/plugins/datasource/elasticsearch/configuration/ElasticDetails.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { EventsWithValidation, FormField, Input, regexValidation, LegacyForms } from '@grafana/ui'; -const { Select } = LegacyForms; +import { EventsWithValidation, FormField, regexValidation, LegacyForms } from '@grafana/ui'; +const { Select, Input } = LegacyForms; import { ElasticsearchOptions } from '../types'; import { DataSourceSettings, SelectableValue } from '@grafana/data'; diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/AzureCredentialsForm.tsx b/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/AzureCredentialsForm.tsx index 0926fd0c25a..ce1c72744f4 100644 --- a/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/AzureCredentialsForm.tsx +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/AzureCredentialsForm.tsx @@ -1,7 +1,7 @@ import React, { ChangeEvent, PureComponent } from 'react'; import { SelectableValue } from '@grafana/data'; -import { Input, FormLabel, LegacyForms, Button } from '@grafana/ui'; -const { Select } = LegacyForms; +import { FormLabel, LegacyForms, Button } from '@grafana/ui'; +const { Select, Input } = LegacyForms; export interface Props { selectedAzureCloud?: string; diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/InsightsConfig.tsx b/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/InsightsConfig.tsx index 38b339bb648..2876f43965b 100644 --- a/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/InsightsConfig.tsx +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/components/InsightsConfig.tsx @@ -1,5 +1,6 @@ import React, { PureComponent } from 'react'; -import { FormLabel, Button, Input } from '@grafana/ui'; +import { FormLabel, Button, LegacyForms } from '@grafana/ui'; +const { Input } = LegacyForms; import { AzureDataSourceSettings, AzureDataSourceJsonData, AzureDataSourceSecureJsonData } from '../types'; export interface Props { diff --git a/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx b/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx index 66b06e45bd1..b70af4dcc28 100644 --- a/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx +++ b/public/app/plugins/datasource/influxdb/components/ConfigEditor.tsx @@ -8,8 +8,8 @@ import { onUpdateDatasourceJsonDataOptionSelect, onUpdateDatasourceSecureJsonDataOption, } from '@grafana/data'; -import { DataSourceHttpSettings, FormLabel, Input, SecretFormField, LegacyForms } from '@grafana/ui'; -const { Select } = LegacyForms; +import { DataSourceHttpSettings, FormLabel, SecretFormField, LegacyForms } from '@grafana/ui'; +const { Select, Input } = LegacyForms; import { InfluxOptions, InfluxSecureJsonData } from '../types'; const httpModes = [ diff --git a/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx b/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx index ed7bfbc5150..e5bf1184457 100644 --- a/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx +++ b/public/app/plugins/datasource/opentsdb/components/OpenTsdbDetails.tsx @@ -1,6 +1,6 @@ import React, { SyntheticEvent } from 'react'; -import { FormLabel, LegacyForms, Input } from '@grafana/ui'; -const { Select } = LegacyForms; +import { FormLabel, LegacyForms } from '@grafana/ui'; +const { Select, Input } = LegacyForms; import { DataSourceSettings, SelectableValue } from '@grafana/data'; import { OpenTsdbOptions } from '../types'; diff --git a/public/app/plugins/datasource/prometheus/configuration/PromSettings.tsx b/public/app/plugins/datasource/prometheus/configuration/PromSettings.tsx index 4436362c0a3..1256827371d 100644 --- a/public/app/plugins/datasource/prometheus/configuration/PromSettings.tsx +++ b/public/app/plugins/datasource/prometheus/configuration/PromSettings.tsx @@ -1,6 +1,6 @@ import React, { SyntheticEvent } from 'react'; -import { EventsWithValidation, FormField, FormLabel, Input, regexValidation, LegacyForms } from '@grafana/ui'; -const { Select } = LegacyForms; +import { EventsWithValidation, FormField, FormLabel, regexValidation, LegacyForms } from '@grafana/ui'; +const { Select, Input } = LegacyForms; import { DataSourceSettings, SelectableValue } from '@grafana/data'; import { PromOptions } from '../types'; diff --git a/public/app/plugins/datasource/stackdriver/components/AnnotationQueryEditor.tsx b/public/app/plugins/datasource/stackdriver/components/AnnotationQueryEditor.tsx index 0fdbf49dfa6..d0948f1769a 100644 --- a/public/app/plugins/datasource/stackdriver/components/AnnotationQueryEditor.tsx +++ b/public/app/plugins/datasource/stackdriver/components/AnnotationQueryEditor.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import { Input } from '@grafana/ui'; +import { LegacyForms } from '@grafana/ui'; +const { Input } = LegacyForms; import { TemplateSrv } from 'app/features/templating/template_srv'; import { SelectableValue } from '@grafana/data'; diff --git a/public/app/plugins/panel/graph2/GraphLegendEditor.tsx b/public/app/plugins/panel/graph2/GraphLegendEditor.tsx index 2cf43d86a99..158022d72ba 100644 --- a/public/app/plugins/panel/graph2/GraphLegendEditor.tsx +++ b/public/app/plugins/panel/graph2/GraphLegendEditor.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import { LegendOptions, PanelOptionsGroup, Switch, Input, StatsPicker } from '@grafana/ui'; +import { LegendOptions, PanelOptionsGroup, Switch, LegacyForms, StatsPicker } from '@grafana/ui'; +const { Input } = LegacyForms; export interface GraphLegendEditorLegendOptions extends LegendOptions { stats?: string[]; diff --git a/scripts/ci-frontend-metrics.sh b/scripts/ci-frontend-metrics.sh index 6913d1770ea..af786911ab7 100755 --- a/scripts/ci-frontend-metrics.sh +++ b/scripts/ci-frontend-metrics.sh @@ -13,7 +13,7 @@ DIRECTIVES="$(grep -r -o directive public/app/**/* | wc -l)" CONTROLLERS="$(grep -r -oP 'class .*Ctrl' public/app/**/* | wc -l)" STORIES_COUNT="$(find ./packages/grafana-ui/src/components -name "*.story.tsx" | wc -l)" MDX_COUNT="$(find ./packages/grafana-ui/src/components -name "*.mdx" | wc -l)" - +LEGACY_FORMS="$(grep -r -oP 'LegacyForms;' public/app/**/* | wc -l)" if [ "$ERROR_COUNT" -gt $ERROR_COUNT_LIMIT ]; then @@ -36,6 +36,7 @@ echo -e "Directives: $DIRECTIVES" echo -e "Controllers: $CONTROLLERS" echo -e "Stories: $STORIES_COUNT" echo -e "Documented stories: $MDX_COUNT" +echo -e "Legacy forms: $LEGACY_FORMS" if [ "${CIRCLE_BRANCH}" == "master" ]; then ./scripts/ci-metrics-publisher.sh \ @@ -43,5 +44,6 @@ if [ "${CIRCLE_BRANCH}" == "master" ]; then grafana.ci-code.directives="$DIRECTIVES" \ grafana.ci-code.controllers="$CONTROLLERS" \ grafana.ci-code.grafana-ui.stories="$STORIES_COUNT" \ - grafana.ci-code.grafana-ui.mdx="$MDX_COUNT" + grafana.ci-code.grafana-ui.mdx="$MDX_COUNT" \ + grafana.ci-code.legacyForms="$LEGACY_FORMS" fi