diff --git a/packages/grafana-ui/src/components/Collapse/CollapsableSection.tsx b/packages/grafana-ui/src/components/Collapse/CollapsableSection.tsx index 3d8fd8d42f3..49dfb1b5b9a 100644 --- a/packages/grafana-ui/src/components/Collapse/CollapsableSection.tsx +++ b/packages/grafana-ui/src/components/Collapse/CollapsableSection.tsx @@ -1,6 +1,6 @@ import { css, cx } from '@emotion/css'; import { uniqueId } from 'lodash'; -import React, { FC, ReactNode, useRef, useState } from 'react'; +import React, { ReactNode, useRef, useState } from 'react'; import { GrafanaTheme2 } from '@grafana/data'; @@ -22,7 +22,7 @@ export interface Props { contentDataTestId?: string; } -export const CollapsableSection: FC = ({ +export const CollapsableSection = ({ label, isOpen, onToggle, @@ -33,7 +33,7 @@ export const CollapsableSection: FC = ({ loading = false, headerDataTestId, contentDataTestId, -}) => { +}: Props) => { const [open, toggleOpen] = useState(isOpen); const styles = useStyles2(collapsableSectionStyles); diff --git a/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinkEditorModalContent.tsx b/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinkEditorModalContent.tsx index 3adecc87e0c..4b2cebf7adf 100644 --- a/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinkEditorModalContent.tsx +++ b/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinkEditorModalContent.tsx @@ -1,4 +1,4 @@ -import React, { FC, useState } from 'react'; +import React, { useState } from 'react'; import { DataFrame, DataLink, VariableSuggestion } from '@grafana/data'; @@ -15,13 +15,13 @@ interface DataLinkEditorModalContentProps { onCancel: (index: number) => void; } -export const DataLinkEditorModalContent: FC = ({ +export const DataLinkEditorModalContent = ({ link, index, getSuggestions, onSave, onCancel, -}) => { +}: DataLinkEditorModalContentProps) => { const [dirtyLink, setDirtyLink] = useState(link); return ( <> diff --git a/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx b/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx index 3445488f3e3..8bcd50e8e46 100644 --- a/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx +++ b/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx @@ -2,7 +2,7 @@ import { css, cx } from '@emotion/css'; import { useDialog } from '@react-aria/dialog'; import { FocusScope } from '@react-aria/focus'; import { useOverlay } from '@react-aria/overlays'; -import React, { FC, FormEvent, ReactNode, useCallback, useEffect, useRef, useState } from 'react'; +import React, { FormEvent, ReactNode, useCallback, useEffect, useRef, useState } from 'react'; import Calendar from 'react-calendar'; import { usePopper } from 'react-popper'; import { useMedia } from 'react-use'; @@ -27,7 +27,7 @@ export interface Props { maxDate?: Date; } -export const DateTimePicker: FC = ({ date, maxDate, label, onChange }) => { +export const DateTimePicker = ({ date, maxDate, label, onChange }: Props) => { const [isOpen, setOpen] = useState(false); const ref = useRef(null); diff --git a/packages/grafana-ui/src/components/DateTimePickers/TimeOfDayPicker.tsx b/packages/grafana-ui/src/components/DateTimePickers/TimeOfDayPicker.tsx index 99dbf1fcddf..f9297501cde 100644 --- a/packages/grafana-ui/src/components/DateTimePickers/TimeOfDayPicker.tsx +++ b/packages/grafana-ui/src/components/DateTimePickers/TimeOfDayPicker.tsx @@ -1,6 +1,6 @@ import { css, cx } from '@emotion/css'; import RcTimePicker from 'rc-time-picker'; -import React, { FC } from 'react'; +import React from 'react'; import { dateTime, DateTime, dateTimeAsMoment, GrafanaTheme2 } from '@grafana/data'; @@ -19,7 +19,7 @@ export interface Props { disabled?: boolean; } -export const TimeOfDayPicker: FC = ({ +export const TimeOfDayPicker = ({ minuteStep = 1, showHour = true, showSeconds = false, @@ -27,7 +27,7 @@ export const TimeOfDayPicker: FC = ({ value, size = 'auto', disabled, -}) => { +}: Props) => { const styles = useStyles2(getStyles); return ( @@ -51,7 +51,7 @@ interface CaretProps { wrapperStyle?: string; } -const Caret: FC = ({ wrapperStyle = '' }) => { +const Caret = ({ wrapperStyle = '' }: CaretProps) => { return (
diff --git a/packages/grafana-ui/src/components/FormattedValueDisplay/FormattedValueDisplay.tsx b/packages/grafana-ui/src/components/FormattedValueDisplay/FormattedValueDisplay.tsx index a34c6a7d893..effd3060c02 100644 --- a/packages/grafana-ui/src/components/FormattedValueDisplay/FormattedValueDisplay.tsx +++ b/packages/grafana-ui/src/components/FormattedValueDisplay/FormattedValueDisplay.tsx @@ -1,4 +1,4 @@ -import React, { FC, CSSProperties, HTMLProps } from 'react'; +import React, { CSSProperties, HTMLProps } from 'react'; import { FormattedValue } from '@grafana/data'; @@ -18,7 +18,7 @@ function fontSizeReductionFactor(fontSize: number) { return 0.6; } -export const FormattedValueDisplay: FC = ({ value, className, style, ...htmlProps }) => { +export const FormattedValueDisplay = ({ value, className, style, ...htmlProps }: Props) => { const hasPrefix = (value.prefix ?? '').length > 0; const hasSuffix = (value.suffix ?? '').length > 0; let suffixStyle; diff --git a/public/app/core/components/TagFilter/TagFilter.tsx b/public/app/core/components/TagFilter/TagFilter.tsx index 4ebaf6176d2..5c53c96375b 100644 --- a/public/app/core/components/TagFilter/TagFilter.tsx +++ b/public/app/core/components/TagFilter/TagFilter.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { components } from 'react-select'; import { escapeStringForRegex, GrafanaTheme2 } from '@grafana/data'; @@ -38,7 +38,7 @@ const filterOption = (option: any, searchQuery: string) => { return regex.test(option.value); }; -export const TagFilter: FC = ({ +export const TagFilter = ({ allowCustomValue = false, formatCreateLabel, hideValues, @@ -49,7 +49,7 @@ export const TagFilter: FC = ({ tagOptions, tags, width, -}) => { +}: Props) => { const styles = useStyles2(getStyles); const currentlySelectedTags = tags.map((tag) => ({ value: tag, label: tag, count: 0 })); diff --git a/public/app/core/components/TagFilter/TagOption.tsx b/public/app/core/components/TagFilter/TagOption.tsx index a6b52ebe06b..77b7b83cc6a 100644 --- a/public/app/core/components/TagFilter/TagOption.tsx +++ b/public/app/core/components/TagFilter/TagOption.tsx @@ -1,5 +1,5 @@ import { css, cx } from '@emotion/css'; -import React, { FC } from 'react'; +import React from 'react'; import { OptionProps } from 'react-select'; import { GrafanaTheme2 } from '@grafana/data'; @@ -12,7 +12,7 @@ interface ExtendedOptionProps extends OptionProps { data: any; } -export const TagOption: FC = ({ data, className, label, isFocused, innerProps }) => { +export const TagOption = ({ data, className, label, isFocused, innerProps }: ExtendedOptionProps) => { const styles = useStyles2(getStyles); return ( diff --git a/public/app/features/canvas/elements/droneFront.tsx b/public/app/features/canvas/elements/droneFront.tsx index b0a29355812..f68811d331f 100644 --- a/public/app/features/canvas/elements/droneFront.tsx +++ b/public/app/features/canvas/elements/droneFront.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC } from 'react'; +import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '@grafana/ui'; @@ -16,11 +16,9 @@ interface DroneFrontConfig { rollAngle?: ScalarDimensionConfig; } -const DroneFrontDisplay: FC> = (props) => { +const DroneFrontDisplay = ({ data }: CanvasElementProps) => { const styles = useStyles2(getStyles); - const { data } = props; - const droneFrontTransformStyle = `rotate(${data?.rollAngle ? data.rollAngle : 0}deg)`; return ( diff --git a/public/app/features/canvas/elements/droneSide.tsx b/public/app/features/canvas/elements/droneSide.tsx index 71366a67a15..9258c8f2efe 100644 --- a/public/app/features/canvas/elements/droneSide.tsx +++ b/public/app/features/canvas/elements/droneSide.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC } from 'react'; +import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '@grafana/ui'; @@ -16,11 +16,9 @@ interface DroneSideConfig { pitchAngle?: ScalarDimensionConfig; } -const DroneSideDisplay: FC> = (props) => { +const DroneSideDisplay = ({ data }: CanvasElementProps) => { const styles = useStyles2(getStyles); - const { data } = props; - const droneSidePitchTransformStyle = `rotate(${data?.pitchAngle ? data.pitchAngle : 0}deg)`; return ( diff --git a/public/app/features/canvas/elements/droneTop.tsx b/public/app/features/canvas/elements/droneTop.tsx index f9be7552923..c7c67840cc1 100644 --- a/public/app/features/canvas/elements/droneTop.tsx +++ b/public/app/features/canvas/elements/droneTop.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC } from 'react'; +import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '@grafana/ui'; @@ -24,11 +24,9 @@ interface DroneTopConfig { yawAngle?: ScalarDimensionConfig; } -const DroneTopDisplay: FC> = (props) => { +const DroneTopDisplay = ({ data }: CanvasElementProps) => { const styles = useStyles2(getStyles); - const { data } = props; - const fRightRotorAnimation = `spin ${data?.fRightRotorRPM ? 60 / Math.abs(data.fRightRotorRPM) : 0}s linear infinite`; const fLeftRotorAnimation = `spin ${data?.fLeftRotorRPM ? 60 / Math.abs(data.fLeftRotorRPM) : 0}s linear infinite`; diff --git a/public/app/features/canvas/elements/windTurbine.tsx b/public/app/features/canvas/elements/windTurbine.tsx index f606c91bd62..b26a09f5ecd 100644 --- a/public/app/features/canvas/elements/windTurbine.tsx +++ b/public/app/features/canvas/elements/windTurbine.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC } from 'react'; +import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '@grafana/ui'; @@ -16,11 +16,9 @@ interface WindTurbineConfig { rpm?: ScalarDimensionConfig; } -const WindTurbineDisplay: FC> = (props) => { +const WindTurbineDisplay = ({ data }: CanvasElementProps) => { const styles = useStyles2(getStyles); - const { data } = props; - const windTurbineAnimation = `spin ${data?.rpm ? 60 / Math.abs(data.rpm) : 0}s linear infinite`; return ( diff --git a/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx b/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx index a9f4dfd1614..e5094ec3ed9 100644 --- a/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx +++ b/public/app/features/dimensions/editors/BackgroundSizeEditor.tsx @@ -1,4 +1,4 @@ -import React, { FC, useCallback } from 'react'; +import React, { useCallback } from 'react'; import { SelectableValue, StandardEditorProps } from '@grafana/data'; import { InlineField, InlineFieldRow, RadioButtonGroup } from '@grafana/ui/src'; @@ -12,9 +12,7 @@ const options: Array> = [ { value: BackgroundImageSize.Tile, label: 'Tile' }, ]; -export const BackgroundSizeEditor: FC> = (props) => { - const { value, onChange } = props; - +export const BackgroundSizeEditor = ({ value, onChange }: StandardEditorProps) => { const imageSize = value ?? BackgroundImageSize.Cover; const onImageSizeChange = useCallback( diff --git a/public/app/features/dimensions/editors/ScalarDimensionEditor.tsx b/public/app/features/dimensions/editors/ScalarDimensionEditor.tsx index 1ba5f9c8eab..d06e59b57b9 100644 --- a/public/app/features/dimensions/editors/ScalarDimensionEditor.tsx +++ b/public/app/features/dimensions/editors/ScalarDimensionEditor.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC, useCallback } from 'react'; +import React, { useCallback } from 'react'; import { FieldType, GrafanaTheme2, SelectableValue, StandardEditorProps } from '@grafana/data'; import { InlineField, InlineFieldRow, RadioButtonGroup, Select, useStyles2 } from '@grafana/ui'; @@ -18,10 +18,9 @@ const scalarOptions = [ { label: 'Clamped', value: ScalarDimensionMode.Clamped, description: 'Use field values, clamped to max and min' }, ]; -export const ScalarDimensionEditor: FC> = ( - props -) => { - const { value, context, onChange, item } = props; +type Props = StandardEditorProps; + +export const ScalarDimensionEditor = ({ value, context, onChange, item }: Props) => { const { settings } = item; const DEFAULT_VALUE = 0; diff --git a/public/app/features/dimensions/editors/TextDimensionEditor.tsx b/public/app/features/dimensions/editors/TextDimensionEditor.tsx index 61356f0d5b6..b10d2f36bb5 100644 --- a/public/app/features/dimensions/editors/TextDimensionEditor.tsx +++ b/public/app/features/dimensions/editors/TextDimensionEditor.tsx @@ -1,4 +1,4 @@ -import React, { FC, useCallback } from 'react'; +import React, { useCallback } from 'react'; import { FieldNamePickerConfigSettings, @@ -26,8 +26,9 @@ const dummyStringSettings: StandardEditorsRegistryItem> = (props) => { - const { value, context, onChange } = props; +type Props = StandardEditorProps; + +export const TextDimensionEditor = ({ value, context, onChange }: Props) => { const labelWidth = 9; const onModeChange = useCallback( diff --git a/public/app/features/inspector/InspectDataOptions.tsx b/public/app/features/inspector/InspectDataOptions.tsx index 20e1cf3f114..073e90eba44 100644 --- a/public/app/features/inspector/InspectDataOptions.tsx +++ b/public/app/features/inspector/InspectDataOptions.tsx @@ -1,4 +1,4 @@ -import React, { FC } from 'react'; +import React from 'react'; import { DataFrame, DataTransformerID, getFrameDisplayName, SelectableValue } from '@grafana/data'; import { Field, HorizontalGroup, Select, Switch, VerticalGroup } from '@grafana/ui'; @@ -24,7 +24,7 @@ interface Props { onOptionsChange?: (options: GetDataOptions) => void; } -export const InspectDataOptions: FC = ({ +export const InspectDataOptions = ({ options, onOptionsChange, panel, @@ -36,7 +36,7 @@ export const InspectDataOptions: FC = ({ onDataFrameChange, downloadForExcel, toggleDownloadForExcel, -}) => { +}: Props) => { const styles = getPanelInspectorStyles(); const panelTransformations = panel?.getTransformations(); diff --git a/public/app/features/scenes/SceneEmbeddedPage.tsx b/public/app/features/scenes/SceneEmbeddedPage.tsx index 8b1939a94af..5728ffa7c0c 100644 --- a/public/app/features/scenes/SceneEmbeddedPage.tsx +++ b/public/app/features/scenes/SceneEmbeddedPage.tsx @@ -1,5 +1,5 @@ // Libraries -import React, { FC } from 'react'; +import React from 'react'; import { NavModelItem } from '@grafana/data'; import { Page } from 'app/core/components/Page/Page'; @@ -9,7 +9,7 @@ import { getSceneByTitle } from './scenes'; export interface Props extends GrafanaRouteComponentProps<{ name: string }> {} -export const SceneEmbeddedPage: FC = (props) => { +export const SceneEmbeddedPage = (props: Props) => { const scene = getSceneByTitle(props.match.params.name, false); if (!scene) { diff --git a/public/app/features/scenes/SceneListPage.tsx b/public/app/features/scenes/SceneListPage.tsx index 0590acce524..6518394f78d 100644 --- a/public/app/features/scenes/SceneListPage.tsx +++ b/public/app/features/scenes/SceneListPage.tsx @@ -1,5 +1,5 @@ // Libraries -import React, { FC } from 'react'; +import React from 'react'; import { useAsync } from 'react-use'; import { Stack } from '@grafana/experimental'; @@ -13,7 +13,7 @@ import { getScenes } from './scenes'; export interface Props {} -export const SceneListPage: FC = ({}) => { +export const SceneListPage = ({}: Props) => { const scenes = getScenes(); const results = useAsync(() => { return getGrafanaSearcher().starred({ starred: true }); diff --git a/public/app/features/scenes/ScenePage.tsx b/public/app/features/scenes/ScenePage.tsx index 9c17614d150..92587896aee 100644 --- a/public/app/features/scenes/ScenePage.tsx +++ b/public/app/features/scenes/ScenePage.tsx @@ -1,5 +1,5 @@ // Libraries -import React, { FC } from 'react'; +import React from 'react'; import { GrafanaRouteComponentProps } from 'app/core/navigation/types'; @@ -7,7 +7,7 @@ import { getSceneByTitle } from './scenes'; export interface Props extends GrafanaRouteComponentProps<{ name: string }> {} -export const ScenePage: FC = (props) => { +export const ScenePage = (props: Props) => { const scene = getSceneByTitle(props.match.params.name, true); if (!scene) { diff --git a/public/app/features/scenes/dashboard/DashboardScenePage.tsx b/public/app/features/scenes/dashboard/DashboardScenePage.tsx index b806e608d4f..3c2075099a9 100644 --- a/public/app/features/scenes/dashboard/DashboardScenePage.tsx +++ b/public/app/features/scenes/dashboard/DashboardScenePage.tsx @@ -1,5 +1,5 @@ // Libraries -import React, { FC, useEffect } from 'react'; +import React, { useEffect } from 'react'; import { Page } from 'app/core/components/Page/Page'; import PageLoader from 'app/core/components/PageLoader/PageLoader'; @@ -9,7 +9,7 @@ import { getDashboardLoader } from './DashboardsLoader'; export interface Props extends GrafanaRouteComponentProps<{ uid: string }> {} -export const DashboardScenePage: FC = ({ match }) => { +export const DashboardScenePage = ({ match }: Props) => { const loader = getDashboardLoader(); const { dashboard, isLoading } = loader.useState(); diff --git a/public/app/features/search/components/DashboardListPage.tsx b/public/app/features/search/components/DashboardListPage.tsx index 301af0dae87..846b3351da2 100644 --- a/public/app/features/search/components/DashboardListPage.tsx +++ b/public/app/features/search/components/DashboardListPage.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC, memo } from 'react'; +import React, { memo } from 'react'; import { useAsync } from 'react-use'; import { locationUtil, NavModelItem } from '@grafana/data'; @@ -19,7 +19,7 @@ export interface DashboardListPageRouteParams { interface Props extends GrafanaRouteComponentProps {} -export const DashboardListPage: FC = memo(({ match, location }) => { +export const DashboardListPage = memo(({ match, location }: Props) => { const { loading, value } = useAsync<() => Promise<{ folder?: FolderDTO; pageNav?: NavModelItem }>>(() => { const uid = match.params.uid; const url = location.pathname; diff --git a/public/app/features/search/components/SearchCheckbox.tsx b/public/app/features/search/components/SearchCheckbox.tsx index d4c669aed49..9261556b7ef 100644 --- a/public/app/features/search/components/SearchCheckbox.tsx +++ b/public/app/features/search/components/SearchCheckbox.tsx @@ -1,4 +1,4 @@ -import React, { FC, memo } from 'react'; +import React, { memo } from 'react'; import { Checkbox } from '@grafana/ui'; @@ -10,8 +10,8 @@ interface Props { 'aria-label'?: string; } -export const SearchCheckbox: FC = memo( - ({ onClick, className, checked = false, editable = false, 'aria-label': ariaLabel }) => { +export const SearchCheckbox = memo( + ({ onClick, className, checked = false, editable = false, 'aria-label': ariaLabel }: Props) => { return editable ? (
diff --git a/public/app/plugins/panel/alertlist/AlertInstances.tsx b/public/app/plugins/panel/alertlist/AlertInstances.tsx index e5f8680040d..d598fec4094 100644 --- a/public/app/plugins/panel/alertlist/AlertInstances.tsx +++ b/public/app/plugins/panel/alertlist/AlertInstances.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/css'; import { noop } from 'lodash'; import pluralize from 'pluralize'; -import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { GrafanaTheme2, PanelProps } from '@grafana/data'; import { Icon, useStyles2 } from '@grafana/ui'; @@ -19,7 +19,7 @@ interface Props { options: PanelProps['options']; } -export const AlertInstances: FC = ({ alerts, options }) => { +export const AlertInstances = ({ alerts, options }: Props) => { // when custom grouping is enabled, we will always uncollapse the list of alert instances const defaultShowInstances = options.groupMode === GroupMode.Custom ? true : options.showInstances; const [displayInstances, setDisplayInstances] = useState(defaultShowInstances); diff --git a/public/app/plugins/panel/annolist/AnnotationListItem.tsx b/public/app/plugins/panel/annolist/AnnotationListItem.tsx index a16553a2e06..1774e8d4644 100644 --- a/public/app/plugins/panel/annolist/AnnotationListItem.tsx +++ b/public/app/plugins/panel/annolist/AnnotationListItem.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC, MouseEvent } from 'react'; +import React, { MouseEvent } from 'react'; import { AnnotationEvent, DateTimeInput, GrafanaTheme2, PanelProps } from '@grafana/data'; import { Card, TagList, Tooltip, RenderUserContentAsHTML, useStyles2 } from '@grafana/ui'; @@ -14,14 +14,7 @@ interface Props extends Pick, 'options'> { onTagClick: (tag: string, remove?: boolean) => void; } -export const AnnotationListItem: FC = ({ - options, - annotation, - formatDate, - onClick, - onAvatarClick, - onTagClick, -}) => { +export const AnnotationListItem = ({ options, annotation, formatDate, onClick, onAvatarClick, onTagClick }: Props) => { const styles = useStyles2(getStyles); const { showUser, showTags, showTime } = options; const { text = '', login, email, avatarUrl, tags, time, timeEnd } = annotation; @@ -78,7 +71,7 @@ interface AvatarProps { email?: string; } -const Avatar: FC = ({ onClick, avatarUrl, login, email }) => { +const Avatar = ({ onClick, avatarUrl, login, email }: AvatarProps) => { const styles = useStyles2(getStyles); const onAvatarClick = (e: MouseEvent) => { e.stopPropagation(); @@ -105,7 +98,7 @@ interface TimeStampProps { formatDate: (date: DateTimeInput, format?: string) => string; } -const TimeStamp: FC = ({ time, formatDate }) => { +const TimeStamp = ({ time, formatDate }: TimeStampProps) => { const styles = useStyles2(getStyles); return ( diff --git a/public/app/plugins/panel/geomap/editor/FrameSelectionEditor.tsx b/public/app/plugins/panel/geomap/editor/FrameSelectionEditor.tsx index 5b770e2c2a2..98bcac91b8b 100644 --- a/public/app/plugins/panel/geomap/editor/FrameSelectionEditor.tsx +++ b/public/app/plugins/panel/geomap/editor/FrameSelectionEditor.tsx @@ -1,4 +1,4 @@ -import React, { FC, useCallback, useMemo, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import { FrameMatcherID, @@ -31,7 +31,9 @@ const recoverRefIdMissing = ( return; }; -export const FrameSelectionEditor: FC> = ({ value, context, onChange, item }) => { +type Props = StandardEditorProps; + +export const FrameSelectionEditor = ({ value, context, onChange, item }: Props) => { const listOfRefId = useMemo(() => { return context.data.map((f) => ({ value: f.refId, diff --git a/public/app/plugins/panel/geomap/editor/GeomapStyleRulesEditor.tsx b/public/app/plugins/panel/geomap/editor/GeomapStyleRulesEditor.tsx index 183c68d7f54..abf8313342c 100644 --- a/public/app/plugins/panel/geomap/editor/GeomapStyleRulesEditor.tsx +++ b/public/app/plugins/panel/geomap/editor/GeomapStyleRulesEditor.tsx @@ -1,4 +1,4 @@ -import React, { FC, useCallback } from 'react'; +import React, { useCallback } from 'react'; import { StandardEditorProps, StandardEditorsRegistryItem } from '@grafana/data'; import { Button, useTheme2 } from '@grafana/ui'; @@ -9,8 +9,9 @@ import { FeatureStyleConfig } from '../types'; import { StyleRuleEditor, StyleRuleEditorSettings } from './StyleRuleEditor'; -export const GeomapStyleRulesEditor: FC> = (props) => { - const { value, onChange, context, item } = props; +type Props = StandardEditorProps; + +export const GeomapStyleRulesEditor = ({ value, onChange, context, item }: Props) => { const theme = useTheme2(); const settings = item.settings; diff --git a/public/app/plugins/panel/geomap/editor/StyleEditor.tsx b/public/app/plugins/panel/geomap/editor/StyleEditor.tsx index dffb281c64e..43abef1335f 100644 --- a/public/app/plugins/panel/geomap/editor/StyleEditor.tsx +++ b/public/app/plugins/panel/geomap/editor/StyleEditor.tsx @@ -1,5 +1,5 @@ import { capitalize } from 'lodash'; -import React, { FC } from 'react'; +import React from 'react'; import { useObservable } from 'react-use'; import { Observable, of } from 'rxjs'; @@ -42,12 +42,9 @@ export interface StyleEditorOptions { displayRotation?: boolean; } -export const StyleEditor: FC> = ({ - value, - context, - onChange, - item, -}) => { +type Props = StandardEditorProps; + +export const StyleEditor = ({ value, context, onChange, item }: Props) => { const settings = item.settings; const onSizeChange = (sizeValue: ScaleDimensionConfig | undefined) => { diff --git a/public/app/plugins/panel/geomap/editor/StyleRuleEditor.tsx b/public/app/plugins/panel/geomap/editor/StyleRuleEditor.tsx index 8aab89c820b..1f4294db808 100644 --- a/public/app/plugins/panel/geomap/editor/StyleRuleEditor.tsx +++ b/public/app/plugins/panel/geomap/editor/StyleRuleEditor.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/css'; import { FeatureLike } from 'ol/Feature'; -import React, { FC, useCallback, useMemo } from 'react'; +import React, { useCallback, useMemo } from 'react'; import { useObservable } from 'react-use'; import { Observable } from 'rxjs'; @@ -30,10 +30,9 @@ const comparators = [ { label: '<=', value: ComparisonOperation.LTE }, ]; -export const StyleRuleEditor: FC> = ( - props -) => { - const { value, onChange, item, context } = props; +type Props = StandardEditorProps; + +export const StyleRuleEditor = ({ value, onChange, item, context }: Props) => { const settings: StyleRuleEditorSettings = item.settings; const { features, layerInfo } = settings; diff --git a/public/app/plugins/panel/gettingstarted/components/Step.tsx b/public/app/plugins/panel/gettingstarted/components/Step.tsx index bdfdd4d5be9..88acc80c9c8 100644 --- a/public/app/plugins/panel/gettingstarted/components/Step.tsx +++ b/public/app/plugins/panel/gettingstarted/components/Step.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC } from 'react'; +import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '@grafana/ui'; @@ -13,7 +13,7 @@ interface Props { step: SetupStep; } -export const Step: FC = ({ step }) => { +export const Step = ({ step }: Props) => { const styles = useStyles2(getStyles); return ( diff --git a/public/app/plugins/panel/gettingstarted/components/TutorialCard.tsx b/public/app/plugins/panel/gettingstarted/components/TutorialCard.tsx index 1d30a9798f5..5aa26396475 100644 --- a/public/app/plugins/panel/gettingstarted/components/TutorialCard.tsx +++ b/public/app/plugins/panel/gettingstarted/components/TutorialCard.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC, MouseEvent, useCallback } from 'react'; +import React, { MouseEvent, useCallback } from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { Icon, useStyles2 } from '@grafana/ui'; @@ -13,7 +13,7 @@ interface Props { card: TutorialCardType; } -export const TutorialCard: FC = ({ card }) => { +export const TutorialCard = ({ card }: Props) => { const styles = useStyles2(useCallback((theme: GrafanaTheme2) => getStyles(theme, card.done), [card.done])); const iconStyles = useStyles2(useCallback((theme: GrafanaTheme2) => iconStyle(theme, card.done), [card.done])); diff --git a/public/app/plugins/panel/piechart/PieChart.tsx b/public/app/plugins/panel/piechart/PieChart.tsx index c550ebbc73b..80b35c811b8 100644 --- a/public/app/plugins/panel/piechart/PieChart.tsx +++ b/public/app/plugins/panel/piechart/PieChart.tsx @@ -5,7 +5,7 @@ import { Group } from '@visx/group'; import Pie, { PieArcDatum, ProvidedProps } from '@visx/shape/lib/shapes/Pie'; import { useTooltip, useTooltipInPortal } from '@visx/tooltip'; import { UseTooltipParams } from '@visx/tooltip/lib/hooks/useTooltip'; -import React, { FC, useCallback } from 'react'; +import React, { useCallback } from 'react'; import tinycolor from 'tinycolor2'; import { @@ -46,7 +46,7 @@ interface PieChartProps { tooltipOptions: VizTooltipOptions; } -export const PieChart: FC = ({ +export const PieChart = ({ fieldDisplayValues, pieType, width, @@ -54,7 +54,7 @@ export const PieChart: FC = ({ highlightedTitle, displayLabels = [], tooltipOptions, -}) => { +}: PieChartProps) => { const theme = useTheme2(); const componentInstanceId = useComponentInstanceId('PieChart'); const styles = useStyles2(getStyles); diff --git a/public/app/plugins/panel/xychart/AutoEditor.tsx b/public/app/plugins/panel/xychart/AutoEditor.tsx index 534eebf8c83..3dbaae8a891 100644 --- a/public/app/plugins/panel/xychart/AutoEditor.tsx +++ b/public/app/plugins/panel/xychart/AutoEditor.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { FC, useMemo } from 'react'; +import React, { useMemo } from 'react'; import { SelectableValue, @@ -19,11 +19,11 @@ interface XYInfo { yFields: Array>; } -export const AutoEditor: FC> = ({ +export const AutoEditor = ({ value, onChange, context, -}) => { +}: StandardEditorProps) => { const frameNames = useMemo(() => { if (context?.data?.length) { return context.data.map((f, idx) => ({