chore: remove react import (#2727)

* chore: added jsx-runtime plugin in eslint tsconfig

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>

* chore: updated react imports

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>

* chore: renamed redux dispatch

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>

* fix: build is fixed

---------

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>
Co-authored-by: Palash Gupta <palashgdev@gmail.com>
This commit is contained in:
GermaVinsmoke 2023-05-19 13:14:32 +05:30 committed by GitHub
parent 604d98be05
commit 72452dc946
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
306 changed files with 460 additions and 488 deletions

View File

@ -1,7 +1,7 @@
{ {
"presets": [ "presets": [
"@babel/preset-env", "@babel/preset-env",
"@babel/preset-react", ["@babel/preset-react", { "runtime": "automatic" }],
"@babel/preset-typescript" "@babel/preset-typescript"
], ],
"plugins": [ "plugins": [

View File

@ -16,6 +16,7 @@ module.exports = {
'plugin:sonarjs/recommended', 'plugin:sonarjs/recommended',
'plugin:import/errors', 'plugin:import/errors',
'plugin:import/warnings', 'plugin:import/warnings',
'plugin:react/jsx-runtime',
], ],
parser: '@typescript-eslint/parser', parser: '@typescript-eslint/parser',
parserOptions: { parserOptions: {

View File

@ -7,7 +7,7 @@ import { LOCALSTORAGE } from 'constants/localStorage';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import history from 'lib/history'; import history from 'lib/history';
import React, { useEffect, useMemo } from 'react'; import { ReactChild, useEffect, useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { matchPath, Redirect, useLocation } from 'react-router-dom'; import { matchPath, Redirect, useLocation } from 'react-router-dom';
@ -161,7 +161,7 @@ function PrivateRoute({ children }: PrivateRouteProps): JSX.Element {
} }
interface PrivateRouteProps { interface PrivateRouteProps {
children: React.ReactChild; children: ReactChild;
} }
export default PrivateRoute; export default PrivateRoute;

View File

@ -7,7 +7,7 @@ import { NotificationProvider } from 'hooks/useNotifications';
import { ResourceProvider } from 'hooks/useResourceAttribute'; import { ResourceProvider } from 'hooks/useResourceAttribute';
import history from 'lib/history'; import history from 'lib/history';
import { QueryBuilderProvider } from 'providers/QueryBuilder'; import { QueryBuilderProvider } from 'providers/QueryBuilder';
import React, { Suspense } from 'react'; import { Suspense } from 'react';
import { Route, Router, Switch } from 'react-router-dom'; import { Route, Router, Switch } from 'react-router-dom';
import PrivateRoute from './Private'; import PrivateRoute from './Private';

View File

@ -1,5 +1,3 @@
import React from 'react';
function TimeSeries(): JSX.Element { function TimeSeries(): JSX.Element {
return ( return (
<svg <svg

View File

@ -1,4 +1,4 @@
import React from 'react'; import { CSSProperties } from 'react';
function Value(props: ValueProps): JSX.Element { function Value(props: ValueProps): JSX.Element {
const { fillColor } = props; const { fillColor } = props;
@ -20,7 +20,7 @@ function Value(props: ValueProps): JSX.Element {
} }
interface ValueProps { interface ValueProps {
fillColor: React.CSSProperties['color']; fillColor: CSSProperties['color'];
} }
export default Value; export default Value;

View File

@ -1,5 +1,3 @@
import React from 'react';
function NotFound(): JSX.Element { function NotFound(): JSX.Element {
return ( return (
<svg <svg

View File

@ -1,5 +1,3 @@
import React from 'react';
function SomethingWentWrong(): JSX.Element { function SomethingWentWrong(): JSX.Element {
return ( return (
<svg <svg

View File

@ -1,5 +1,3 @@
import React from 'react';
function UnAuthorized(): JSX.Element { function UnAuthorized(): JSX.Element {
return ( return (
<svg <svg

View File

@ -1,6 +1,5 @@
import { render, screen } from '@testing-library/react'; import { render, screen } from '@testing-library/react';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import React from 'react';
import Editor from './index'; import Editor from './index';

View File

@ -1,6 +1,6 @@
import MEditor, { EditorProps } from '@monaco-editor/react'; import MEditor, { EditorProps } from '@monaco-editor/react';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import React, { useMemo } from 'react'; import { useMemo } from 'react';
function Editor({ function Editor({
value, value,

View File

@ -26,7 +26,7 @@ import annotationPlugin from 'chartjs-plugin-annotation';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import isEqual from 'lodash-es/isEqual'; import isEqual from 'lodash-es/isEqual';
import React, { memo, useCallback, useEffect, useRef } from 'react'; import { memo, useCallback, useEffect, useRef } from 'react';
import { hasData } from './hasData'; import { hasData } from './hasData';
import { getAxisLabelColor } from './helpers'; import { getAxisLabelColor } from './helpers';

View File

@ -1,5 +1,12 @@
import { Form, Input, InputProps, InputRef } from 'antd'; import { Form, Input, InputProps, InputRef } from 'antd';
import React from 'react'; import {
ChangeEventHandler,
FocusEventHandler,
KeyboardEventHandler,
LegacyRef,
ReactNode,
Ref,
} from 'react';
function InputComponent({ function InputComponent({
value, value,
@ -22,7 +29,7 @@ function InputComponent({
type={type} type={type}
onChange={onChangeHandler} onChange={onChangeHandler}
value={value} value={value}
ref={ref as React.Ref<InputRef>} ref={ref as Ref<InputRef>}
size={size} size={size}
addonBefore={addonBefore} addonBefore={addonBefore}
onBlur={onBlurHandler} onBlur={onBlurHandler}
@ -37,15 +44,15 @@ function InputComponent({
interface InputComponentProps extends InputProps { interface InputComponentProps extends InputProps {
value: InputProps['value']; value: InputProps['value'];
type?: InputProps['type']; type?: InputProps['type'];
onChangeHandler?: React.ChangeEventHandler<HTMLInputElement>; onChangeHandler?: ChangeEventHandler<HTMLInputElement>;
placeholder?: InputProps['placeholder']; placeholder?: InputProps['placeholder'];
ref?: React.LegacyRef<InputRef>; ref?: LegacyRef<InputRef>;
size?: InputProps['size']; size?: InputProps['size'];
onBlurHandler?: React.FocusEventHandler<HTMLInputElement>; onBlurHandler?: FocusEventHandler<HTMLInputElement>;
onPressEnterHandler?: React.KeyboardEventHandler<HTMLInputElement>; onPressEnterHandler?: KeyboardEventHandler<HTMLInputElement>;
label?: string; label?: string;
labelOnTop?: boolean; labelOnTop?: boolean;
addonBefore?: React.ReactNode; addonBefore?: ReactNode;
} }
InputComponent.defaultProps = { InputComponent.defaultProps = {

View File

@ -3,7 +3,7 @@ import {
screen, screen,
waitForElementToBeRemoved, waitForElementToBeRemoved,
} from '@testing-library/react'; } from '@testing-library/react';
import React from 'react'; import React, { ComponentType, Suspense } from 'react';
import Loadable from './index'; import Loadable from './index';
@ -13,9 +13,9 @@ function SampleComponent(): JSX.Element {
} }
const loadSampleComponent = (): Promise<{ const loadSampleComponent = (): Promise<{
default: React.ComponentType; default: ComponentType;
}> => }> =>
new Promise<{ default: React.ComponentType }>((resolve) => { new Promise<{ default: ComponentType }>((resolve) => {
setTimeout(() => { setTimeout(() => {
resolve({ default: SampleComponent }); resolve({ default: SampleComponent });
}, 500); }, 500);
@ -26,9 +26,9 @@ describe('Loadable', () => {
const LoadableSampleComponent = Loadable(loadSampleComponent); const LoadableSampleComponent = Loadable(loadSampleComponent);
const { container } = render( const { container } = render(
<React.Suspense fallback={<div>Loading...</div>}> <Suspense fallback={<div>Loading...</div>}>
<LoadableSampleComponent /> <LoadableSampleComponent />
</React.Suspense>, </Suspense>,
); );
expect(screen.getByText('Loading...')).toBeInTheDocument(); expect(screen.getByText('Loading...')).toBeInTheDocument();
@ -37,7 +37,7 @@ describe('Loadable', () => {
expect(container.querySelector('div')).toHaveTextContent('Sample Component'); expect(container.querySelector('div')).toHaveTextContent('Sample Component');
}); });
it('should call React.lazy with the provided import path', () => { it('should call lazy with the provided import path', () => {
const reactLazySpy = jest.spyOn(React, 'lazy'); const reactLazySpy = jest.spyOn(React, 'lazy');
Loadable(loadSampleComponent); Loadable(loadSampleComponent);

View File

@ -1,8 +1,8 @@
import { ComponentType, lazy } from 'react'; import { ComponentType, lazy, LazyExoticComponent } from 'react';
function Loadable(importPath: { function Loadable(importPath: {
(): LoadableProps; (): LoadableProps;
}): React.LazyExoticComponent<LazyComponent> { }): LazyExoticComponent<LazyComponent> {
return lazy(() => importPath()); return lazy(() => importPath());
} }

View File

@ -2,7 +2,7 @@ import { Popover } from 'antd';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import history from 'lib/history'; import history from 'lib/history';
import { generateFilterQuery } from 'lib/logs/generateFilterQuery'; import { generateFilterQuery } from 'lib/logs/generateFilterQuery';
import React, { memo, useCallback, useMemo } from 'react'; import { memo, ReactNode, useCallback, useMemo } from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';
import { ILogsReducer } from 'types/reducer/logs'; import { ILogsReducer } from 'types/reducer/logs';
@ -51,7 +51,7 @@ function AddToQueryHOC({
interface AddToQueryHOCProps { interface AddToQueryHOCProps {
fieldKey: string; fieldKey: string;
fieldValue: string; fieldValue: string;
children: React.ReactNode; children: ReactNode;
} }
export default memo(AddToQueryHOC); export default memo(AddToQueryHOC);

View File

@ -1,9 +1,9 @@
import React from 'react'; import { ReactNode } from 'react';
import { CategoryHeadingText } from './styles'; import { CategoryHeadingText } from './styles';
interface ICategoryHeadingProps { interface ICategoryHeadingProps {
children: React.ReactNode; children: ReactNode;
} }
function CategoryHeading({ children }: ICategoryHeadingProps): JSX.Element { function CategoryHeading({ children }: ICategoryHeadingProps): JSX.Element {
return <CategoryHeadingText type="secondary">{children}</CategoryHeadingText>; return <CategoryHeadingText type="secondary">{children}</CategoryHeadingText>;

View File

@ -1,6 +1,6 @@
import { Popover } from 'antd'; import { Popover } from 'antd';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import React, { useCallback, useEffect } from 'react'; import { ReactNode, useCallback, useEffect } from 'react';
import { useCopyToClipboard } from 'react-use'; import { useCopyToClipboard } from 'react-use';
function CopyClipboardHOC({ function CopyClipboardHOC({
@ -35,7 +35,7 @@ function CopyClipboardHOC({
interface CopyClipboardHOCProps { interface CopyClipboardHOCProps {
textToCopy: string; textToCopy: string;
children: React.ReactNode; children: ReactNode;
} }
export default CopyClipboardHOC; export default CopyClipboardHOC;

View File

@ -8,7 +8,7 @@ import dompurify from 'dompurify';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
// utils // utils
import { FlatLogData } from 'lib/logs/flatLogData'; import { FlatLogData } from 'lib/logs/flatLogData';
import React, { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { useCopyToClipboard } from 'react-use'; import { useCopyToClipboard } from 'react-use';
// interfaces // interfaces

View File

@ -1 +1,3 @@
export const rawLineStyle: React.CSSProperties = {}; import { CSSProperties } from 'react';
export const rawLineStyle: CSSProperties = {};

View File

@ -5,7 +5,7 @@ import dayjs from 'dayjs';
import dompurify from 'dompurify'; import dompurify from 'dompurify';
// hooks // hooks
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import React, { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';
// interfaces // interfaces
import { ILog } from 'types/api/logs/log'; import { ILog } from 'types/api/logs/log';

View File

@ -1,14 +1,14 @@
import { TableProps } from 'antd'; import { TableProps } from 'antd';
import React from 'react'; import { CSSProperties } from 'react';
export const defaultCellStyle: React.CSSProperties = { export const defaultCellStyle: CSSProperties = {
paddingTop: 4, paddingTop: 4,
paddingBottom: 6, paddingBottom: 6,
paddingRight: 8, paddingRight: 8,
paddingLeft: 8, paddingLeft: 8,
}; };
export const defaultTableStyle: React.CSSProperties = { export const defaultTableStyle: CSSProperties = {
minWidth: '40rem', minWidth: '40rem',
maxWidth: '40rem', maxWidth: '40rem',
}; };

View File

@ -6,7 +6,7 @@ import dayjs from 'dayjs';
import dompurify from 'dompurify'; import dompurify from 'dompurify';
// utils // utils
import { FlatLogData } from 'lib/logs/flatLogData'; import { FlatLogData } from 'lib/logs/flatLogData';
import React, { useMemo } from 'react'; import { useMemo } from 'react';
import { IField } from 'types/api/logs/fields'; import { IField } from 'types/api/logs/fields';
// interfaces // interfaces
import { ILog } from 'types/api/logs/log'; import { ILog } from 'types/api/logs/log';

View File

@ -1,11 +1,11 @@
import React from 'react'; import { ReactNode } from 'react';
import { StyledAlert } from './styles'; import { StyledAlert } from './styles';
interface MessageTipProps { interface MessageTipProps {
show?: boolean; show?: boolean;
message: React.ReactNode | string; message: ReactNode | string;
action: React.ReactNode | undefined; action: ReactNode | undefined;
} }
function MessageTip({ function MessageTip({

View File

@ -1,5 +1,5 @@
import { Modal, ModalProps as Props } from 'antd'; import { Modal, ModalProps as Props } from 'antd';
import React, { ReactElement } from 'react'; import { ReactElement } from 'react';
function CustomModal({ function CustomModal({
title, title,

View File

@ -1,5 +1,4 @@
import { render } from '@testing-library/react'; import { render } from '@testing-library/react';
import React from 'react';
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import { MemoryRouter } from 'react-router-dom'; import { MemoryRouter } from 'react-router-dom';
import store from 'store'; import store from 'store';

View File

@ -2,7 +2,7 @@ import getLocalStorageKey from 'api/browser/localstorage/get';
import NotFoundImage from 'assets/NotFound'; import NotFoundImage from 'assets/NotFound';
import { LOCALSTORAGE } from 'constants/localStorage'; import { LOCALSTORAGE } from 'constants/localStorage';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import React, { useCallback } from 'react'; import { useCallback } from 'react';
import { useDispatch } from 'react-redux'; import { useDispatch } from 'react-redux';
import { Dispatch } from 'redux'; import { Dispatch } from 'redux';
import AppActions from 'types/actions'; import AppActions from 'types/actions';

View File

@ -1,7 +1,7 @@
import { Button, Space } from 'antd'; import { Button, Space } from 'antd';
import setFlags from 'api/user/setFlags'; import setFlags from 'api/user/setFlags';
import MessageTip from 'components/MessageTip'; import MessageTip from 'components/MessageTip';
import React, { useCallback } from 'react'; import { useCallback } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { Dispatch } from 'redux'; import { Dispatch } from 'redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';

View File

@ -1,7 +1,6 @@
import ReleaseNoteProps from 'components/ReleaseNote/ReleaseNoteProps'; import ReleaseNoteProps from 'components/ReleaseNote/ReleaseNoteProps';
import ReleaseNote0120 from 'components/ReleaseNote/Releases/ReleaseNote0120'; import ReleaseNote0120 from 'components/ReleaseNote/Releases/ReleaseNote0120';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import React from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';
import { UserFlags } from 'types/api/user/setFlags'; import { UserFlags } from 'types/api/user/setFlags';

View File

@ -1,4 +1,4 @@
import React, { useMemo } from 'react'; import { SyntheticEvent, useMemo } from 'react';
import { Resizable, ResizeCallbackData } from 'react-resizable'; import { Resizable, ResizeCallbackData } from 'react-resizable';
import { enableUserSelectHack } from './config'; import { enableUserSelectHack } from './config';
@ -37,7 +37,7 @@ function ResizableHeader(props: ResizableHeaderProps): JSX.Element {
} }
interface ResizableHeaderProps { interface ResizableHeaderProps {
onResize: (e: React.SyntheticEvent<Element>, data: ResizeCallbackData) => void; onResize: (e: SyntheticEvent<Element>, data: ResizeCallbackData) => void;
width: number; width: number;
} }

View File

@ -1,7 +1,7 @@
import { Table } from 'antd'; import { Table } from 'antd';
import type { TableProps } from 'antd/es/table'; import type { TableProps } from 'antd/es/table';
import { ColumnsType } from 'antd/lib/table'; import { ColumnsType } from 'antd/lib/table';
import React, { useCallback, useMemo, useState } from 'react'; import { SyntheticEvent, useCallback, useMemo, useState } from 'react';
import { ResizeCallbackData } from 'react-resizable'; import { ResizeCallbackData } from 'react-resizable';
import ResizableHeader from './ResizableHeader'; import ResizableHeader from './ResizableHeader';
@ -12,7 +12,7 @@ function ResizeTable({ columns, ...restprops }: TableProps<any>): JSX.Element {
const handleResize = useCallback( const handleResize = useCallback(
(index: number) => ( (index: number) => (
_e: React.SyntheticEvent<Element>, _e: SyntheticEvent<Element>,
{ size }: ResizeCallbackData, { size }: ResizeCallbackData,
): void => { ): void => {
const newColumns = [...columnsData]; const newColumns = [...columnsData];

View File

@ -1,6 +1,5 @@
import { Tabs, TabsProps } from 'antd'; import { Tabs, TabsProps } from 'antd';
import history from 'lib/history'; import history from 'lib/history';
import React from 'react';
function RouteTab({ function RouteTab({
routes, routes,

View File

@ -1,6 +1,6 @@
import { LoadingOutlined } from '@ant-design/icons'; import { LoadingOutlined } from '@ant-design/icons';
import { Spin, SpinProps } from 'antd'; import { Spin, SpinProps } from 'antd';
import React from 'react'; import { CSSProperties } from 'react';
import { SpinerStyle } from './styles'; import { SpinerStyle } from './styles';
@ -15,8 +15,8 @@ function Spinner({ size, tip, height, style }: SpinnerProps): JSX.Element {
interface SpinnerProps { interface SpinnerProps {
size?: SpinProps['size']; size?: SpinProps['size'];
tip?: SpinProps['tip']; tip?: SpinProps['tip'];
height?: React.CSSProperties['height']; height?: CSSProperties['height'];
style?: React.CSSProperties; style?: CSSProperties;
} }
Spinner.defaultProps = { Spinner.defaultProps = {
size: undefined, size: undefined,

View File

@ -1,8 +1,8 @@
import React from 'react'; import { CSSProperties } from 'react';
import styled from 'styled-components'; import styled from 'styled-components';
interface Props { interface Props {
height: React.CSSProperties['height']; height: CSSProperties['height'];
} }
export const SpinerStyle = styled.div<Props>` export const SpinerStyle = styled.div<Props>`

View File

@ -1,7 +1,7 @@
import * as AntD from 'antd'; import * as AntD from 'antd';
import { TextProps } from 'antd/lib/typography/Text'; import { TextProps } from 'antd/lib/typography/Text';
import { TitleProps } from 'antd/lib/typography/Title'; import { TitleProps } from 'antd/lib/typography/Title';
import React from 'react'; import { HTMLAttributes } from 'react';
import styled, { FlattenSimpleInterpolation } from 'styled-components'; import styled, { FlattenSimpleInterpolation } from 'styled-components';
import { IStyledClass } from './types'; import { IStyledClass } from './types';
@ -51,7 +51,7 @@ const StyledTypographyTitle = styled(Title)<TStyledTypographyTitle>`
${styledClass} ${styledClass}
`; `;
type TStyledDiv = React.HTMLAttributes<HTMLDivElement> & IStyledClass; type TStyledDiv = HTMLAttributes<HTMLDivElement> & IStyledClass;
const StyledDiv = styled.div<TStyledDiv>` const StyledDiv = styled.div<TStyledDiv>`
${styledClass} ${styledClass}
`; `;

View File

@ -3,7 +3,7 @@ import { QuestionCircleFilled } from '@ant-design/icons';
import { Tooltip } from 'antd'; import { Tooltip } from 'antd';
import { themeColors } from 'constants/theme'; import { themeColors } from 'constants/theme';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import React, { useMemo } from 'react'; import { useMemo } from 'react';
import { style } from './styles'; import { style } from './styles';

View File

@ -1,6 +1,5 @@
import { Typography } from 'antd'; import { Typography } from 'antd';
import { timeItems } from 'container/NewWidget/RightContainer/timeItems'; import { timeItems } from 'container/NewWidget/RightContainer/timeItems';
import React from 'react';
export const menuItems = timeItems.map((item) => ({ export const menuItems = timeItems.map((item) => ({
key: item.enum, key: item.enum,

View File

@ -3,7 +3,7 @@ import TimeItems, {
timePreferance, timePreferance,
timePreferenceType, timePreferenceType,
} from 'container/NewWidget/RightContainer/timeItems'; } from 'container/NewWidget/RightContainer/timeItems';
import React, { useCallback, useMemo } from 'react'; import { Dispatch, SetStateAction, useCallback, useMemo } from 'react';
import { menuItems } from './config'; import { menuItems } from './config';
import { TextContainer } from './styles'; import { TextContainer } from './styles';
@ -44,7 +44,7 @@ interface TimeMenuItemOnChangeHandlerEvent {
} }
interface TimePreferenceDropDownProps { interface TimePreferenceDropDownProps {
setSelectedTime: React.Dispatch<React.SetStateAction<timePreferance>>; setSelectedTime: Dispatch<SetStateAction<timePreferance>>;
selectedTime: timePreferance; selectedTime: timePreferance;
} }

View File

@ -1,5 +1,3 @@
import React from 'react';
import { Value } from './styles'; import { Value } from './styles';
function ValueGraph({ value }: ValueGraphProps): JSX.Element { function ValueGraph({ value }: ValueGraphProps): JSX.Element {

View File

@ -1,5 +1,5 @@
import { Card, Space, Typography } from 'antd'; import { Card, Space, Typography } from 'antd';
import React from 'react'; import { ReactChild } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { Container, LeftContainer, Logo } from './styles'; import { Container, LeftContainer, Logo } from './styles';
@ -34,7 +34,7 @@ function WelcomeLeftContainer({
interface WelcomeLeftContainerProps { interface WelcomeLeftContainerProps {
version: string; version: string;
children: React.ReactChild; children: ReactChild;
} }
export default WelcomeLeftContainer; export default WelcomeLeftContainer;

View File

@ -6,7 +6,7 @@ import ROUTES from 'constants/routes';
import useComponentPermission from 'hooks/useComponentPermission'; import useComponentPermission from 'hooks/useComponentPermission';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback, useState } from 'react'; import { useCallback, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { generatePath } from 'react-router-dom'; import { generatePath } from 'react-router-dom';

View File

@ -1,7 +1,7 @@
import { Button } from 'antd'; import { Button } from 'antd';
import { NotificationInstance } from 'antd/es/notification/interface'; import { NotificationInstance } from 'antd/es/notification/interface';
import deleteChannel from 'api/channels/delete'; import deleteChannel from 'api/channels/delete';
import React, { useState } from 'react'; import { Dispatch, SetStateAction, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { Channels } from 'types/api/channels/getAll'; import { Channels } from 'types/api/channels/getAll';
@ -55,7 +55,7 @@ function Delete({ notifications, setChannels, id }: DeleteProps): JSX.Element {
interface DeleteProps { interface DeleteProps {
notifications: NotificationInstance; notifications: NotificationInstance;
setChannels: React.Dispatch<React.SetStateAction<Channels[]>>; setChannels: Dispatch<SetStateAction<Channels[]>>;
id: string; id: string;
} }

View File

@ -7,7 +7,7 @@ import ROUTES from 'constants/routes';
import useComponentPermission from 'hooks/useComponentPermission'; import useComponentPermission from 'hooks/useComponentPermission';
import useFetch from 'hooks/useFetch'; import useFetch from 'hooks/useFetch';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback } from 'react'; import { useCallback } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';

View File

@ -23,7 +23,7 @@ import { convertRawQueriesToTraceSelectedTags } from 'hooks/useResourceAttribute
import useUrlQuery from 'hooks/useUrlQuery'; import useUrlQuery from 'hooks/useUrlQuery';
import createQueryParams from 'lib/createQueryParams'; import createQueryParams from 'lib/createQueryParams';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback, useEffect, useMemo } from 'react'; import { useCallback, useEffect, useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQueries } from 'react-query'; import { useQueries } from 'react-query';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';

View File

@ -6,7 +6,7 @@ import Header from 'container/Header';
import SideNav from 'container/SideNav'; import SideNav from 'container/SideNav';
import TopNav from 'container/TopNav'; import TopNav from 'container/TopNav';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import React, { ReactNode, useEffect, useRef } from 'react'; import { ReactNode, useEffect, useRef } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQueries } from 'react-query'; import { useQueries } from 'react-query';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';

View File

@ -1,4 +1,4 @@
import React, { PureComponent } from 'react'; import { PureComponent } from 'react';
interface State { interface State {
hasError: boolean; hasError: boolean;

View File

@ -1,4 +1,4 @@
import React from 'react'; import { ReactNode } from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
function LinkContainer({ children, href }: LinkContainerProps): JSX.Element { function LinkContainer({ children, href }: LinkContainerProps): JSX.Element {
@ -16,7 +16,7 @@ function LinkContainer({ children, href }: LinkContainerProps): JSX.Element {
} }
interface LinkContainerProps { interface LinkContainerProps {
children: React.ReactNode; children: ReactNode;
href: string; href: string;
} }

View File

@ -1,7 +1,7 @@
import { Menu, Space } from 'antd'; import { Menu, Space } from 'antd';
import Spinner from 'components/Spinner'; import Spinner from 'components/Spinner';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import React, { Suspense, useMemo } from 'react'; import { lazy, Suspense, useMemo } from 'react';
import { ConfigProps } from 'types/api/dynamicConfigs/getDynamicConfigs'; import { ConfigProps } from 'types/api/dynamicConfigs/getDynamicConfigs';
import ErrorLink from './ErrorLink'; import ErrorLink from './ErrorLink';
@ -17,7 +17,7 @@ function HelpToolTip({ config }: HelpToolTipProps): JSX.Element {
const items = sortedConfig.map((item) => { const items = sortedConfig.map((item) => {
const iconName = `${isDarkMode ? item.darkIcon : item.lightIcon}`; const iconName = `${isDarkMode ? item.darkIcon : item.lightIcon}`;
const Component = React.lazy( const Component = lazy(
() => import(`@ant-design/icons/es/icons/${iconName}.js`), () => import(`@ant-design/icons/es/icons/${iconName}.js`),
); );
return { return {

View File

@ -6,7 +6,7 @@ import {
} from '@ant-design/icons'; } from '@ant-design/icons';
import { Dropdown, Space } from 'antd'; import { Dropdown, Space } from 'antd';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import React, { useMemo, useState } from 'react'; import { useMemo, useState } from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';
import { ConfigProps } from 'types/api/dynamicConfigs/getDynamicConfigs'; import { ConfigProps } from 'types/api/dynamicConfigs/getDynamicConfigs';

View File

@ -9,7 +9,7 @@ import ROUTES from 'constants/routes';
import FormAlertChannels from 'container/FormAlertChannels'; import FormAlertChannels from 'container/FormAlertChannels';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback, useState } from 'react'; import { useCallback, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { import {

View File

@ -1,5 +1,4 @@
import { Row } from 'antd'; import { Row } from 'antd';
import React from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { AlertTypes } from 'types/api/alerts/alertTypes'; import { AlertTypes } from 'types/api/alerts/alertTypes';

View File

@ -1,6 +1,6 @@
import { Form, Row } from 'antd'; import { Form, Row } from 'antd';
import FormAlertRules from 'container/FormAlertRules'; import FormAlertRules from 'container/FormAlertRules';
import React, { useState } from 'react'; import { useState } from 'react';
import { AlertTypes } from 'types/api/alerts/alertTypes'; import { AlertTypes } from 'types/api/alerts/alertTypes';
import { import {

View File

@ -19,7 +19,7 @@ import {
import FormAlertChannels from 'container/FormAlertChannels'; import FormAlertChannels from 'container/FormAlertChannels';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback, useState } from 'react'; import { useCallback, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useParams } from 'react-router-dom'; import { useParams } from 'react-router-dom';

View File

@ -1,6 +1,5 @@
import { Form } from 'antd'; import { Form } from 'antd';
import FormAlertRules from 'container/FormAlertRules'; import FormAlertRules from 'container/FormAlertRules';
import React from 'react';
import { AlertTypes } from 'types/api/alerts/alertTypes'; import { AlertTypes } from 'types/api/alerts/alertTypes';
import { AlertDef } from 'types/api/alerts/def'; import { AlertDef } from 'types/api/alerts/def';

View File

@ -7,7 +7,7 @@ import dayjs from 'dayjs';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import history from 'lib/history'; import history from 'lib/history';
import { urlKey } from 'pages/ErrorDetails/utils'; import { urlKey } from 'pages/ErrorDetails/utils';
import React, { useMemo, useState } from 'react'; import { useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { useLocation } from 'react-router-dom'; import { useLocation } from 'react-router-dom';

View File

@ -1,6 +1,6 @@
import { Form, Input, Select } from 'antd'; import { Form, Input, Select } from 'antd';
import { LabelFilterStatement } from 'container/CreateAlertChannels/config'; import { LabelFilterStatement } from 'container/CreateAlertChannels/config';
import React from 'react'; import { Dispatch, SetStateAction } from 'react';
const { Option } = Select; const { Option } = Select;
@ -55,9 +55,7 @@ function LabelFilterForm({ setFilter }: LabelFilterProps): JSX.Element {
} }
export interface LabelFilterProps { export interface LabelFilterProps {
setFilter: React.Dispatch< setFilter: Dispatch<SetStateAction<Partial<Array<LabelFilterStatement>>>>;
React.SetStateAction<Partial<Array<LabelFilterStatement>>>
>;
} }
export default LabelFilterForm; export default LabelFilterForm;

View File

@ -1,5 +1,5 @@
import { Form, Input } from 'antd'; import { Form, Input } from 'antd';
import React from 'react'; import { Dispatch, SetStateAction } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { PagerChannel } from '../../CreateAlertChannels/config'; import { PagerChannel } from '../../CreateAlertChannels/config';
@ -148,7 +148,7 @@ function PagerForm({ setSelectedConfig }: PagerFormProps): JSX.Element {
} }
interface PagerFormProps { interface PagerFormProps {
setSelectedConfig: React.Dispatch<React.SetStateAction<Partial<PagerChannel>>>; setSelectedConfig: Dispatch<SetStateAction<Partial<PagerChannel>>>;
} }
export default PagerForm; export default PagerForm;

View File

@ -1,5 +1,5 @@
import { Form, Input } from 'antd'; import { Form, Input } from 'antd';
import React from 'react'; import { Dispatch, SetStateAction } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { SlackChannel } from '../../CreateAlertChannels/config'; import { SlackChannel } from '../../CreateAlertChannels/config';
@ -66,7 +66,7 @@ function Slack({ setSelectedConfig }: SlackProps): JSX.Element {
} }
interface SlackProps { interface SlackProps {
setSelectedConfig: React.Dispatch<React.SetStateAction<Partial<SlackChannel>>>; setSelectedConfig: Dispatch<SetStateAction<Partial<SlackChannel>>>;
} }
export default Slack; export default Slack;

View File

@ -1,5 +1,5 @@
import { Form, Input } from 'antd'; import { Form, Input } from 'antd';
import React from 'react'; import { Dispatch, SetStateAction } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { WebhookChannel } from '../../CreateAlertChannels/config'; import { WebhookChannel } from '../../CreateAlertChannels/config';
@ -53,9 +53,7 @@ function WebhookSettings({ setSelectedConfig }: WebhookProps): JSX.Element {
} }
interface WebhookProps { interface WebhookProps {
setSelectedConfig: React.Dispatch< setSelectedConfig: Dispatch<SetStateAction<Partial<WebhookChannel>>>;
React.SetStateAction<Partial<WebhookChannel>>
>;
} }
export default WebhookSettings; export default WebhookSettings;

View File

@ -11,7 +11,7 @@ import {
WebhookType, WebhookType,
} from 'container/CreateAlertChannels/config'; } from 'container/CreateAlertChannels/config';
import history from 'lib/history'; import history from 'lib/history';
import React from 'react'; import { Dispatch, ReactElement, SetStateAction } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import PagerSettings from './Settings/Pager'; import PagerSettings from './Settings/Pager';
@ -37,7 +37,7 @@ function FormAlertChannels({
}: FormAlertChannelsProps): JSX.Element { }: FormAlertChannelsProps): JSX.Element {
const { t } = useTranslation('channels'); const { t } = useTranslation('channels');
const renderSettings = (): React.ReactElement | null => { const renderSettings = (): ReactElement | null => {
switch (type) { switch (type) {
case SlackType: case SlackType:
return <SlackSettings setSelectedConfig={setSelectedConfig} />; return <SlackSettings setSelectedConfig={setSelectedConfig} />;
@ -115,8 +115,8 @@ function FormAlertChannels({
interface FormAlertChannelsProps { interface FormAlertChannelsProps {
formInstance: FormInstance; formInstance: FormInstance;
type: ChannelType; type: ChannelType;
setSelectedConfig: React.Dispatch< setSelectedConfig: Dispatch<
React.SetStateAction<Partial<SlackChannel & WebhookChannel & PagerChannel>> SetStateAction<Partial<SlackChannel & WebhookChannel & PagerChannel>>
>; >;
onTypeChangeHandler: (value: ChannelType) => void; onTypeChangeHandler: (value: ChannelType) => void;
onSaveHandler: (props: ChannelType) => void; onSaveHandler: (props: ChannelType) => void;

View File

@ -1,5 +1,4 @@
import { Form, Select } from 'antd'; import { Form, Select } from 'antd';
import React from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { AlertDef, Labels } from 'types/api/alerts/def'; import { AlertDef, Labels } from 'types/api/alerts/def';

View File

@ -1,6 +1,5 @@
import ClickHouseQueryBuilder from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/clickHouse/query'; import ClickHouseQueryBuilder from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/clickHouse/query';
import { IClickHouseQueryHandleChange } from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/clickHouse/types'; import { IClickHouseQueryHandleChange } from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/clickHouse/types';
import React from 'react';
import { IChQueries } from 'types/api/alerts/compositeQuery'; import { IChQueries } from 'types/api/alerts/compositeQuery';
import { rawQueryToIChQuery, toIClickHouseQuery } from './transform'; import { rawQueryToIChQuery, toIClickHouseQuery } from './transform';

View File

@ -2,7 +2,7 @@ import { Select } from 'antd';
import getChannels from 'api/channels/getAll'; import getChannels from 'api/channels/getAll';
import useFetch from 'hooks/useFetch'; import useFetch from 'hooks/useFetch';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import React from 'react'; import { ReactNode } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { StyledSelect } from './styles'; import { StyledSelect } from './styles';
@ -33,8 +33,8 @@ function ChannelSelect({
description: errorMessage, description: errorMessage,
}); });
} }
const renderOptions = (): React.ReactNode[] => { const renderOptions = (): ReactNode[] => {
const children: React.ReactNode[] = []; const children: ReactNode[] = [];
if (loading || payload === undefined || payload.length === 0) { if (loading || payload === undefined || payload.length === 0) {
return children; return children;

View File

@ -7,7 +7,7 @@ import { GRAPH_TYPES } from 'container/NewDashboard/ComponentsSlider';
import { timePreferenceType } from 'container/NewWidget/RightContainer/timeItems'; import { timePreferenceType } from 'container/NewWidget/RightContainer/timeItems';
import { Time } from 'container/TopNav/DateTimeSelection/config'; import { Time } from 'container/TopNav/DateTimeSelection/config';
import getChartData from 'lib/getChartData'; import getChartData from 'lib/getChartData';
import React, { useMemo } from 'react'; import { useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { GetMetricQueryRange } from 'store/actions/dashboard/getQueryResults'; import { GetMetricQueryRange } from 'store/actions/dashboard/getQueryResults';

View File

@ -1,6 +1,5 @@
import PromQLQueryBuilder from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/promQL/query'; import PromQLQueryBuilder from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/promQL/query';
import { IPromQLQueryHandleChange } from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/promQL/types'; import { IPromQLQueryHandleChange } from 'container/NewWidget/LeftContainer/QuerySection/QueryBuilder/promQL/types';
import React from 'react';
import { IPromQueries } from 'types/api/alerts/compositeQuery'; import { IPromQueries } from 'types/api/alerts/compositeQuery';
function PromqlSection({ function PromqlSection({

View File

@ -2,7 +2,7 @@ import { Button, Tabs } from 'antd';
import { ALERTS_DATA_SOURCE_MAP } from 'constants/alerts'; import { ALERTS_DATA_SOURCE_MAP } from 'constants/alerts';
import { PANEL_TYPES } from 'constants/queryBuilder'; import { PANEL_TYPES } from 'constants/queryBuilder';
import { QueryBuilder } from 'container/QueryBuilder'; import { QueryBuilder } from 'container/QueryBuilder';
import React, { useMemo } from 'react'; import { useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { AlertTypes } from 'types/api/alerts/alertTypes'; import { AlertTypes } from 'types/api/alerts/alertTypes';
import { IChQueries, IPromQueries } from 'types/api/alerts/compositeQuery'; import { IChQueries, IPromQueries } from 'types/api/alerts/compositeQuery';

View File

@ -1,5 +1,4 @@
import { Form, Select, Typography } from 'antd'; import { Form, Select, Typography } from 'antd';
import React from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { import {
AlertDef, AlertDef,

View File

@ -1,6 +1,5 @@
import { Col, Row, Typography } from 'antd'; import { Col, Row, Typography } from 'antd';
import TextToolTip from 'components/TextToolTip'; import TextToolTip from 'components/TextToolTip';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next'; import { Trans, useTranslation } from 'react-i18next';
import { EQueryType } from 'types/common/dashboard'; import { EQueryType } from 'types/common/dashboard';

View File

@ -12,7 +12,7 @@ import { useNotifications } from 'hooks/useNotifications';
import history from 'lib/history'; import history from 'lib/history';
import { mapQueryDataFromApi } from 'lib/newQueryBuilder/queryBuilderMappers/mapQueryDataFromApi'; import { mapQueryDataFromApi } from 'lib/newQueryBuilder/queryBuilderMappers/mapQueryDataFromApi';
import { mapQueryDataToApi } from 'lib/newQueryBuilder/queryBuilderMappers/mapQueryDataToApi'; import { mapQueryDataToApi } from 'lib/newQueryBuilder/queryBuilderMappers/mapQueryDataToApi';
import React, { useCallback, useEffect, useState } from 'react'; import { useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQueryClient } from 'react-query'; import { useQueryClient } from 'react-query';
import { AlertTypes } from 'types/api/alerts/alertTypes'; import { AlertTypes } from 'types/api/alerts/alertTypes';

View File

@ -1,5 +1,3 @@
import React from 'react';
import { QueryChipContainer, QueryChipItem } from './styles'; import { QueryChipContainer, QueryChipItem } from './styles';
import { ILabelRecord } from './types'; import { ILabelRecord } from './types';

View File

@ -6,7 +6,7 @@ import { useMachine } from '@xstate/react';
import { Button, Input, message, Modal } from 'antd'; import { Button, Input, message, Modal } from 'antd';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import { map } from 'lodash-es'; import { map } from 'lodash-es';
import React, { useCallback, useEffect, useState } from 'react'; import { ChangeEvent, useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { Labels } from 'types/api/alerts/def'; import { Labels } from 'types/api/alerts/def';
import { v4 as uuid } from 'uuid'; import { v4 as uuid } from 'uuid';
@ -84,7 +84,7 @@ function LabelSelect({
handleBlur(); handleBlur();
}, [handleBlur]); }, [handleBlur]);
const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => { const handleChange = (e: ChangeEvent<HTMLInputElement>): void => {
setCurrentVal(e.target?.value); setCurrentVal(e.target?.value);
}; };

View File

@ -1,6 +1,5 @@
import { convertTimeToRelevantUnit } from 'container/TraceDetail/utils'; import { convertTimeToRelevantUnit } from 'container/TraceDetail/utils';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import React from 'react';
import { toFixed } from 'utils/toFixed'; import { toFixed } from 'utils/toFixed';
import { SpanBorder, SpanLine, SpanText, SpanWrapper } from './styles'; import { SpanBorder, SpanLine, SpanText, SpanWrapper } from './styles';

View File

@ -1,5 +1,3 @@
import React from 'react';
import { Container, Service, Span, SpanWrapper } from './styles'; import { Container, Service, Span, SpanWrapper } from './styles';
function SpanNameComponent({ function SpanNameComponent({

View File

@ -4,7 +4,15 @@ import { StyledCol, StyledRow } from 'components/Styled';
import { IIntervalUnit } from 'container/TraceDetail/utils'; import { IIntervalUnit } from 'container/TraceDetail/utils';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import { SPAN_DETAILS_LEFT_COL_WIDTH } from 'pages/TraceDetail/constants'; import { SPAN_DETAILS_LEFT_COL_WIDTH } from 'pages/TraceDetail/constants';
import React, { useEffect, useMemo, useRef, useState } from 'react'; import {
Dispatch,
MouseEventHandler,
SetStateAction,
useEffect,
useMemo,
useRef,
useState,
} from 'react';
import { ITraceTree } from 'types/api/trace/getTraceItem'; import { ITraceTree } from 'types/api/trace/getTraceItem';
import { ITraceMetaData } from '..'; import { ITraceMetaData } from '..';
@ -71,7 +79,7 @@ function Trace(props: TraceProps): JSX.Element {
const ref = useRef<HTMLUListElement>(null); const ref = useRef<HTMLUListElement>(null);
React.useEffect(() => { useEffect(() => {
if (activeSelectedId === id) { if (activeSelectedId === id) {
ref.current?.scrollIntoView({ ref.current?.scrollIntoView({
block: 'nearest', block: 'nearest',
@ -97,7 +105,7 @@ function Trace(props: TraceProps): JSX.Element {
setActiveSelectedId(id); setActiveSelectedId(id);
}; };
const onClickTreeExpansion: React.MouseEventHandler<HTMLDivElement> = ( const onClickTreeExpansion: MouseEventHandler<HTMLDivElement> = (
event, event,
): void => { ): void => {
event.stopPropagation(); event.stopPropagation();
@ -207,8 +215,8 @@ interface ITraceGlobal {
interface TraceProps extends ITraceTree, ITraceGlobal { interface TraceProps extends ITraceTree, ITraceGlobal {
activeHoverId: string; activeHoverId: string;
setActiveHoverId: React.Dispatch<React.SetStateAction<string>>; setActiveHoverId: Dispatch<SetStateAction<string>>;
setActiveSelectedId: React.Dispatch<React.SetStateAction<string>>; setActiveSelectedId: Dispatch<SetStateAction<string>>;
activeSelectedId: string; activeSelectedId: string;
level: number; level: number;
activeSpanPath: string[]; activeSpanPath: string[];

View File

@ -1,6 +1,6 @@
import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons'; import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons';
import { IIntervalUnit } from 'container/TraceDetail/utils'; import { IIntervalUnit } from 'container/TraceDetail/utils';
import React, { useEffect, useState } from 'react'; import { Dispatch, SetStateAction, useEffect, useState } from 'react';
import { ITraceTree } from 'types/api/trace/getTraceItem'; import { ITraceTree } from 'types/api/trace/getTraceItem';
import { CardContainer, CardWrapper, CollapseButton } from './styles'; import { CardContainer, CardWrapper, CollapseButton } from './styles';
@ -79,8 +79,8 @@ export interface GanttChartProps {
traceMetaData: ITraceMetaData; traceMetaData: ITraceMetaData;
activeSelectedId: string; activeSelectedId: string;
activeHoverId: string; activeHoverId: string;
setActiveHoverId: React.Dispatch<React.SetStateAction<string>>; setActiveHoverId: Dispatch<SetStateAction<string>>;
setActiveSelectedId: React.Dispatch<React.SetStateAction<string>>; setActiveSelectedId: Dispatch<SetStateAction<string>>;
spanId: string; spanId: string;
intervalUnit: IIntervalUnit; intervalUnit: IIntervalUnit;
} }

View File

@ -6,7 +6,7 @@ import TextToolTip from 'components/TextToolTip';
import useComponentPermission from 'hooks/useComponentPermission'; import useComponentPermission from 'hooks/useComponentPermission';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import find from 'lodash-es/find'; import find from 'lodash-es/find';
import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { Fragment, useCallback, useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { UseQueryResult } from 'react-query'; import { UseQueryResult } from 'react-query';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
@ -519,7 +519,7 @@ function GeneralSettings({
category.retentionFields.length > 0 category.retentionFields.length > 0
) { ) {
return ( return (
<React.Fragment key={category.name}> <Fragment key={category.name}>
<Col xs={22} xl={11} key={category.name} style={{ margin: '0.5rem' }}> <Col xs={22} xl={11} key={category.name} style={{ margin: '0.5rem' }}>
<Card style={{ height: '100%', minHeight: 300 }}> <Card style={{ height: '100%', minHeight: 300 }}>
<Typography.Title style={{ margin: 0 }} level={3}> <Typography.Title style={{ margin: 0 }} level={3}>
@ -576,7 +576,7 @@ function GeneralSettings({
</Modal> </Modal>
</Card> </Card>
</Col> </Col>
</React.Fragment> </Fragment>
); );
} }
return null; return null;

View File

@ -1,6 +1,13 @@
import { Col, Row, Select } from 'antd'; import { Col, Row, Select } from 'antd';
import { find } from 'lodash-es'; import { find } from 'lodash-es';
import React, { useEffect, useRef, useState } from 'react'; import {
ChangeEvent,
Dispatch,
SetStateAction,
useEffect,
useRef,
useState,
} from 'react';
import { import {
Input, Input,
@ -62,8 +69,8 @@ function Retention({
}, [selectedTimeUnit, selectedValue, setRetentionValue]); }, [selectedTimeUnit, selectedValue, setRetentionValue]);
const onChangeHandler = ( const onChangeHandler = (
e: React.ChangeEvent<HTMLInputElement>, e: ChangeEvent<HTMLInputElement>,
func: React.Dispatch<React.SetStateAction<number | null>>, func: Dispatch<SetStateAction<number | null>>,
): void => { ): void => {
interacted.current = true; interacted.current = true;
const { value } = e.target; const { value } = e.target;
@ -111,7 +118,7 @@ function Retention({
interface RetentionProps { interface RetentionProps {
retentionValue: number | null; retentionValue: number | null;
text: string; text: string;
setRetentionValue: React.Dispatch<React.SetStateAction<number | null>>; setRetentionValue: Dispatch<SetStateAction<number | null>>;
hide: boolean; hide: boolean;
} }

View File

@ -1,7 +1,7 @@
import { green, orange, volcano } from '@ant-design/colors'; import { green, orange, volcano } from '@ant-design/colors';
import { InfoCircleOutlined } from '@ant-design/icons'; import { InfoCircleOutlined } from '@ant-design/icons';
import { Card, Col, Row } from 'antd'; import { Card, Col, Row } from 'antd';
import React, { useMemo } from 'react'; import { useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { TStatus } from 'types/api/settings/getRetention'; import { TStatus } from 'types/api/settings/getRetention';

View File

@ -2,7 +2,6 @@ import { Typography } from 'antd';
import getDisks from 'api/disks/getDisks'; import getDisks from 'api/disks/getDisks';
import getRetentionPeriodApi from 'api/settings/getRetention'; import getRetentionPeriodApi from 'api/settings/getRetention';
import Spinner from 'components/Spinner'; import Spinner from 'components/Spinner';
import React from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQueries } from 'react-query'; import { useQueries } from 'react-query';
import { ErrorResponse, SuccessResponse } from 'types/api'; import { ErrorResponse, SuccessResponse } from 'types/api';

View File

@ -6,7 +6,6 @@ import ValueGraph from 'components/ValueGraph';
import { PANEL_TYPES } from 'constants/queryBuilder'; import { PANEL_TYPES } from 'constants/queryBuilder';
import { GRAPH_TYPES } from 'container/NewDashboard/ComponentsSlider'; import { GRAPH_TYPES } from 'container/NewDashboard/ComponentsSlider';
import history from 'lib/history'; import history from 'lib/history';
import React from 'react';
import { TitleContainer, ValueContainer } from './styles'; import { TitleContainer, ValueContainer } from './styles';

View File

@ -1,5 +1,4 @@
import { Typography } from 'antd'; import { Typography } from 'antd';
import React from 'react';
import { Container } from './styles'; import { Container } from './styles';

View File

@ -9,7 +9,7 @@ import {
} from 'container/NewWidget/RightContainer/timeItems'; } from 'container/NewWidget/RightContainer/timeItems';
import { getDashboardVariables } from 'lib/dashbaordVariables/getDashboardVariables'; import { getDashboardVariables } from 'lib/dashbaordVariables/getDashboardVariables';
import getChartData from 'lib/getChartData'; import getChartData from 'lib/getChartData';
import React, { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { GetMetricQueryRange } from 'store/actions/dashboard/getQueryResults'; import { GetMetricQueryRange } from 'store/actions/dashboard/getQueryResults';

View File

@ -15,7 +15,7 @@ import GetMaxMinTime from 'lib/getMaxMinTime';
import GetMinMax from 'lib/getMinMax'; import GetMinMax from 'lib/getMinMax';
import getStartAndEndTime from 'lib/getStartAndEndTime'; import getStartAndEndTime from 'lib/getStartAndEndTime';
import getStep from 'lib/getStep'; import getStep from 'lib/getStep';
import React, { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { useQueries } from 'react-query'; import { useQueries } from 'react-query';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';

View File

@ -7,13 +7,20 @@ import usePreviousValue from 'hooks/usePreviousValue';
import { getDashboardVariables } from 'lib/dashbaordVariables/getDashboardVariables'; import { getDashboardVariables } from 'lib/dashbaordVariables/getDashboardVariables';
import getChartData from 'lib/getChartData'; import getChartData from 'lib/getChartData';
import isEmpty from 'lodash-es/isEmpty'; import isEmpty from 'lodash-es/isEmpty';
import React, { memo, useCallback, useMemo, useState } from 'react'; import {
Dispatch,
memo,
SetStateAction,
useCallback,
useMemo,
useState,
} from 'react';
import { Layout } from 'react-grid-layout'; import { Layout } from 'react-grid-layout';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useInView } from 'react-intersection-observer'; import { useInView } from 'react-intersection-observer';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { connect, useSelector } from 'react-redux'; import { connect, useSelector } from 'react-redux';
import { bindActionCreators, Dispatch } from 'redux'; import { bindActionCreators } from 'redux';
import { ThunkDispatch } from 'redux-thunk'; import { ThunkDispatch } from 'redux-thunk';
import { import {
DeleteWidget, DeleteWidget,
@ -117,7 +124,7 @@ function GridCardGraph({
const prevChartDataSetRef = usePreviousValue<ChartData>(chartData); const prevChartDataSetRef = usePreviousValue<ChartData>(chartData);
const onToggleModal = useCallback( const onToggleModal = useCallback(
(func: React.Dispatch<React.SetStateAction<boolean>>) => { (func: Dispatch<SetStateAction<boolean>>) => {
func((value) => !value); func((value) => !value);
}, },
[], [],
@ -318,7 +325,7 @@ interface GridCardGraphProps extends DispatchProps {
// eslint-disable-next-line react/require-default-props // eslint-disable-next-line react/require-default-props
layout?: Layout[]; layout?: Layout[];
// eslint-disable-next-line react/require-default-props // eslint-disable-next-line react/require-default-props
setLayout?: React.Dispatch<React.SetStateAction<LayoutProps[]>>; setLayout?: Dispatch<SetStateAction<LayoutProps[]>>;
onDragSelect?: (start: number, end: number) => void; onDragSelect?: (start: number, end: number) => void;
} }

View File

@ -4,7 +4,7 @@ import { FeatureKeys } from 'constants/features';
import useComponentPermission from 'hooks/useComponentPermission'; import useComponentPermission from 'hooks/useComponentPermission';
import { useIsDarkMode } from 'hooks/useDarkMode'; import { useIsDarkMode } from 'hooks/useDarkMode';
import useFeatureFlag, { MESSAGE } from 'hooks/useFeatureFlag'; import useFeatureFlag, { MESSAGE } from 'hooks/useFeatureFlag';
import React from 'react'; import { Dispatch, SetStateAction } from 'react';
import { Layout } from 'react-grid-layout'; import { Layout } from 'react-grid-layout';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';
@ -130,7 +130,7 @@ interface GraphLayoutProps {
onAddPanelHandler: VoidFunction; onAddPanelHandler: VoidFunction;
onLayoutChangeHandler: (layout: Layout[]) => Promise<void>; onLayoutChangeHandler: (layout: Layout[]) => Promise<void>;
widgets: Widgets[] | undefined; widgets: Widgets[] | undefined;
setLayout: React.Dispatch<React.SetStateAction<LayoutProps[]>>; setLayout: Dispatch<SetStateAction<LayoutProps[]>>;
} }
export default GraphLayout; export default GraphLayout;

View File

@ -1,6 +1,7 @@
import { themeColors } from 'constants/theme'; import { themeColors } from 'constants/theme';
import { CSSProperties } from 'react';
const positionCss: React.CSSProperties['position'] = 'fixed'; const positionCss: CSSProperties['position'] = 'fixed';
export const spinnerStyles = { position: positionCss, right: '0.5rem' }; export const spinnerStyles = { position: positionCss, right: '0.5rem' };
export const tooltipStyles = { export const tooltipStyles = {
@ -13,7 +14,7 @@ export const tooltipStyles = {
export const errorTooltipPosition = 'top'; export const errorTooltipPosition = 'top';
export const overlayStyles: React.CSSProperties = { export const overlayStyles: CSSProperties = {
display: 'flex', display: 'flex',
flexDirection: 'column', flexDirection: 'column',
alignItems: 'center', alignItems: 'center',

View File

@ -10,7 +10,7 @@ import { MenuItemType } from 'antd/es/menu/hooks/useItems';
import Spinner from 'components/Spinner'; import Spinner from 'components/Spinner';
import useComponentPermission from 'hooks/useComponentPermission'; import useComponentPermission from 'hooks/useComponentPermission';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { UseQueryResult } from 'react-query'; import { UseQueryResult } from 'react-query';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';

View File

@ -3,11 +3,17 @@
import updateDashboardApi from 'api/dashboard/update'; import updateDashboardApi from 'api/dashboard/update';
import useComponentPermission from 'hooks/useComponentPermission'; import useComponentPermission from 'hooks/useComponentPermission';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import React, { useCallback, useEffect, useState } from 'react'; import {
Dispatch,
SetStateAction,
useCallback,
useEffect,
useState,
} from 'react';
import { Layout } from 'react-grid-layout'; import { Layout } from 'react-grid-layout';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { connect, useDispatch, useSelector } from 'react-redux'; import { connect, useDispatch, useSelector } from 'react-redux';
import { bindActionCreators, Dispatch } from 'redux'; import { bindActionCreators, Dispatch as ReduxDispatch } from 'redux';
import { ThunkDispatch } from 'redux-thunk'; import { ThunkDispatch } from 'redux-thunk';
import { AppDispatch } from 'store'; import { AppDispatch } from 'store';
import { UpdateTimeInterval } from 'store/actions'; import { UpdateTimeInterval } from 'store/actions';
@ -66,7 +72,7 @@ function GridGraph(props: Props): JSX.Element {
const [selectedDashboard] = dashboards; const [selectedDashboard] = dashboards;
const { data } = selectedDashboard; const { data } = selectedDashboard;
const { widgets } = data; const { widgets } = data;
const dispatch: AppDispatch = useDispatch<Dispatch<AppActions>>(); const dispatch: AppDispatch = useDispatch<ReduxDispatch<AppActions>>();
const [layouts, setLayout] = useState<LayoutProps[]>( const [layouts, setLayout] = useState<LayoutProps[]>(
getPreLayouts(widgets, selectedDashboard.data.layout || []), getPreLayouts(widgets, selectedDashboard.data.layout || []),
@ -336,7 +342,7 @@ function GridGraph(props: Props): JSX.Element {
} }
interface ComponentProps { interface ComponentProps {
setLayout: React.Dispatch<React.SetStateAction<LayoutProps[]>>; setLayout: Dispatch<SetStateAction<LayoutProps[]>>;
} }
export interface LayoutProps extends Layout { export interface LayoutProps extends Layout {
@ -353,7 +359,7 @@ export interface State {
interface DispatchProps { interface DispatchProps {
toggleAddWidget: ( toggleAddWidget: (
props: ToggleAddWidgetProps, props: ToggleAddWidgetProps,
) => (dispatch: Dispatch<AppActions>) => void; ) => (dispatch: ReduxDispatch<AppActions>) => void;
} }
const mapDispatchToProps = ( const mapDispatchToProps = (

View File

@ -4,7 +4,6 @@ import { INVITE_MEMBERS_HASH } from 'constants/app';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import useComponentPermission from 'hooks/useComponentPermission'; import useComponentPermission from 'hooks/useComponentPermission';
import history from 'lib/history'; import history from 'lib/history';
import React from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';
import AppReducer from 'types/reducer/app'; import AppReducer from 'types/reducer/app';

View File

@ -2,7 +2,6 @@ import { Spin, Typography } from 'antd';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import useLicense, { LICENSE_PLAN_KEY } from 'hooks/useLicense'; import useLicense, { LICENSE_PLAN_KEY } from 'hooks/useLicense';
import history from 'lib/history'; import history from 'lib/history';
import React from 'react';
import { import {
FreePlanIcon, FreePlanIcon,

View File

@ -1,7 +1,7 @@
import { Avatar, Typography } from 'antd'; import { Avatar, Typography } from 'antd';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback } from 'react'; import { useCallback } from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';
import AppReducer from 'types/reducer/app'; import AppReducer from 'types/reducer/app';

View File

@ -8,8 +8,9 @@ import { Logout } from 'api/utils';
import ROUTES from 'constants/routes'; import ROUTES from 'constants/routes';
import Config from 'container/ConfigDropdown'; import Config from 'container/ConfigDropdown';
import { useIsDarkMode, useThemeMode } from 'hooks/useDarkMode'; import { useIsDarkMode, useThemeMode } from 'hooks/useDarkMode';
import React, { import {
Dispatch, Dispatch,
KeyboardEvent,
SetStateAction, SetStateAction,
useCallback, useCallback,
useMemo, useMemo,
@ -49,14 +50,11 @@ function HeaderContainer(): JSX.Element {
[], [],
); );
const onLogoutKeyDown = useCallback( const onLogoutKeyDown = useCallback((e: KeyboardEvent<HTMLDivElement>) => {
(e: React.KeyboardEvent<HTMLDivElement>) => { if (e.key === 'Enter' || e.key === 'Space') {
if (e.key === 'Enter' || e.key === 'Space') { Logout();
Logout(); }
} }, []);
},
[],
);
const menu: MenuProps = useMemo( const menu: MenuProps = useMemo(
() => ({ () => ({

View File

@ -1,7 +1,7 @@
import { Button, Form, Input } from 'antd'; import { Button, Form, Input } from 'antd';
import apply from 'api/licenses/apply'; import apply from 'api/licenses/apply';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import React, { useState } from 'react'; import { useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { QueryObserverResult, RefetchOptions } from 'react-query'; import { QueryObserverResult, RefetchOptions } from 'react-query';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';

View File

@ -1,6 +1,5 @@
import { ColumnsType } from 'antd/lib/table'; import { ColumnsType } from 'antd/lib/table';
import { ResizeTable } from 'components/ResizeTable'; import { ResizeTable } from 'components/ResizeTable';
import React from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { License } from 'types/api/licenses/def'; import { License } from 'types/api/licenses/def';
import { PayloadProps } from 'types/api/licenses/getAll'; import { PayloadProps } from 'types/api/licenses/getAll';

View File

@ -1,7 +1,6 @@
import { Tabs, Typography } from 'antd'; import { Tabs, Typography } from 'antd';
import Spinner from 'components/Spinner'; import Spinner from 'components/Spinner';
import useLicense from 'hooks/useLicense'; import useLicense from 'hooks/useLicense';
import React from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import ApplyLicenseForm from './ApplyLicenseForm'; import ApplyLicenseForm from './ApplyLicenseForm';

View File

@ -1,7 +1,7 @@
import { NotificationInstance } from 'antd/es/notification/interface'; import { NotificationInstance } from 'antd/es/notification/interface';
import deleteAlerts from 'api/alerts/delete'; import deleteAlerts from 'api/alerts/delete';
import { State } from 'hooks/useFetch'; import { State } from 'hooks/useFetch';
import React, { useState } from 'react'; import { Dispatch, SetStateAction, useState } from 'react';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers'; import { AppState } from 'store/reducers';
import { PayloadProps as DeleteAlertPayloadProps } from 'types/api/alerts/delete'; import { PayloadProps as DeleteAlertPayloadProps } from 'types/api/alerts/delete';
@ -109,7 +109,7 @@ function DeleteAlert({
interface DeleteAlertProps { interface DeleteAlertProps {
id: GettableAlert['id']; id: GettableAlert['id'];
setData: React.Dispatch<React.SetStateAction<GettableAlert[]>>; setData: Dispatch<SetStateAction<GettableAlert[]>>;
notifications: NotificationInstance; notifications: NotificationInstance;
} }

View File

@ -9,7 +9,7 @@ import useComponentPermission from 'hooks/useComponentPermission';
import useInterval from 'hooks/useInterval'; import useInterval from 'hooks/useInterval';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import history from 'lib/history'; import history from 'lib/history';
import React, { useCallback, useState } from 'react'; import { useCallback, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { UseQueryResult } from 'react-query'; import { UseQueryResult } from 'react-query';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';

View File

@ -1,5 +1,4 @@
import { Tag } from 'antd'; import { Tag } from 'antd';
import React from 'react';
import { GettableAlert } from 'types/api/alerts/get'; import { GettableAlert } from 'types/api/alerts/get';
function Status({ status }: StatusProps): JSX.Element { function Status({ status }: StatusProps): JSX.Element {

View File

@ -1,7 +1,7 @@
import patchAlert from 'api/alerts/patch'; import patchAlert from 'api/alerts/patch';
import { State } from 'hooks/useFetch'; import { State } from 'hooks/useFetch';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import React, { useState } from 'react'; import { Dispatch, SetStateAction, useState } from 'react';
import { GettableAlert } from 'types/api/alerts/get'; import { GettableAlert } from 'types/api/alerts/get';
import { PayloadProps as PatchPayloadProps } from 'types/api/alerts/patch'; import { PayloadProps as PatchPayloadProps } from 'types/api/alerts/patch';
@ -104,7 +104,7 @@ function ToggleAlertState({
interface ToggleAlertStateProps { interface ToggleAlertStateProps {
id: GettableAlert['id']; id: GettableAlert['id'];
disabled: boolean; disabled: boolean;
setData: React.Dispatch<React.SetStateAction<GettableAlert[]>>; setData: Dispatch<SetStateAction<GettableAlert[]>>;
} }
export default ToggleAlertState; export default ToggleAlertState;

View File

@ -3,7 +3,7 @@ import getAll from 'api/alerts/getAll';
import ReleaseNote from 'components/ReleaseNote'; import ReleaseNote from 'components/ReleaseNote';
import Spinner from 'components/Spinner'; import Spinner from 'components/Spinner';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import React, { useEffect } from 'react'; import { useEffect } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { useLocation } from 'react-router-dom'; import { useLocation } from 'react-router-dom';

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