[bundle optimization] fix imports of react-use lib (#82847)

* [bundle optimization] fix imports of react-use lib

* add 2 more files

* add rule into eslintrc.js

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Alexey Antonov 2020-11-10 17:15:26 +03:00 committed by GitHub
parent dc489e48a4
commit b2d6b66fe5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
48 changed files with 59 additions and 54 deletions

View file

@ -640,6 +640,10 @@ module.exports = {
name: 'lodash/fp/assocPath',
message: 'Please use @elastic/safer-lodash-set instead',
},
{
name: 'react-use',
message: 'Please use react-use/lib/{method} instead.',
},
],
},
],

View file

@ -28,7 +28,7 @@ import { HashRouter as Router, Switch, Route } from 'react-router-dom';
import { getTutorial } from '../load_tutorials';
import { replaceTemplateStrings } from './tutorial/replace_template_strings';
import { getServices } from '../kibana_services';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
const RedirectToDefaultApp = () => {
useMount(() => {

View file

@ -36,7 +36,7 @@ import dateMath from '@elastic/datemath';
import { FormattedMessage } from '@kbn/i18n/react';
import { i18n } from '@kbn/i18n';
import { isEqual, omit } from 'lodash';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { DocLinksStart } from 'src/core/public';
import { useKibana } from '../../../../kibana_react/public';

View file

@ -19,7 +19,7 @@
import { get } from 'lodash';
import React, { useState, useCallback } from 'react';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui';
import { i18n } from '@kbn/i18n';

View file

@ -21,7 +21,7 @@ import React, { useState, useEffect } from 'react';
import { omit, isEqual } from 'lodash';
import { htmlIdGenerator, EuiButton, EuiSpacer } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { Query, DataPublicPluginStart } from '../../../../data/public';
import { IUiSettingsClient } from '../../../../../core/public';

View file

@ -20,7 +20,7 @@
import React from 'react';
import { EuiFormRow, EuiSelect } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import {
isCompatibleAggregation,

View file

@ -21,7 +21,7 @@ import React, { useCallback } from 'react';
import { EuiFormRow, EuiIconTip, EuiRange, EuiSpacer } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { AggControlProps } from './agg_control_props';

View file

@ -20,7 +20,7 @@
import React from 'react';
import { EuiFormLabel, EuiSpacer } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { AggParamType, IAggConfig, AggGroupNames } from '../../../../data/public';
import { useSubAggParamsHandlers } from './utils';

View file

@ -21,7 +21,7 @@ import React, { useCallback, useState } from 'react';
import { EuiFlexGroup, EuiFlexItem, EuiButton, EuiButtonEmpty, EuiToolTip } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { i18n } from '@kbn/i18n';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import { Vis } from 'src/plugins/visualizations/public';
import { discardChanges, EditorAction } from './state';

View file

@ -21,7 +21,9 @@ import './visualize_listing.scss';
import React, { useCallback, useRef, useMemo, useEffect } from 'react';
import { i18n } from '@kbn/i18n';
import { useUnmount, useMount } from 'react-use';
import useUnmount from 'react-use/lib/useUnmount';
import useMount from 'react-use/lib/useMount';
import { useLocation } from 'react-router-dom';
import { SavedObjectsFindOptionsReference } from '../../../../../core/public';

View file

@ -31,7 +31,7 @@ import { i18n } from '@kbn/i18n';
import styled from 'styled-components';
import euiLightVars from '@elastic/eui/dist/eui_theme_light.json';
import euiDarkVars from '@elastic/eui/dist/eui_theme_dark.json';
import { useEvent } from 'react-use';
import useEvent from 'react-use/lib/useEvent';
import {
formatOptions,
selectableRenderOptions,

View file

@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { useRef } from 'react';
import { useWindowSize } from 'react-use';
import useWindowSize from 'react-use/lib/useWindowSize';
export function useRefDimensions() {
const ref = useRef<HTMLDivElement>(null);

View file

@ -5,7 +5,7 @@
*/
import React, { memo, useEffect, useState } from 'react';
import ReactDOM from 'react-dom';
import { useObservable } from 'react-use';
import useObservable from 'react-use/lib/useObservable';
import { HashRouter as Router, Redirect, Switch, Route, RouteProps } from 'react-router-dom';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';

View file

@ -5,7 +5,7 @@
*/
import React, { useMemo } from 'react';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import {
ScaleType,
AnnotationDomainTypes,

View file

@ -7,7 +7,7 @@
import React, { useCallback, useMemo, useState } from 'react';
import { i18n } from '@kbn/i18n';
import { EuiLoadingSpinner, EuiSpacer, EuiButton, EuiCallOut } from '@elastic/eui';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { GroupByExpression } from '../../../common/group_by_expression/group_by_expression';
import {
ForLastExpression,

View file

@ -6,7 +6,7 @@
import React, { useMemo } from 'react';
import { noop } from 'lodash';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { euiStyled } from '../../../../observability/public';
import { LogEntriesCursor } from '../../../common/http_api';

View file

@ -6,7 +6,7 @@
import { EuiSpacer, EuiSteps, EuiText, EuiTitle } from '@elastic/eui';
import React, { useCallback, useMemo } from 'react';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { useLogEntryCategoriesSetup } from '../../../../containers/logs/log_analysis/modules/log_entry_categories';
import { createInitialConfigurationStep } from '../initial_configuration_step';
import { createProcessStep } from '../process_step';

View file

@ -6,7 +6,7 @@
import { isEqual } from 'lodash';
import { useCallback, useEffect, useMemo, useState } from 'react';
import { usePrevious } from 'react-use';
import usePrevious from 'react-use/lib/usePrevious';
import {
combineDatasetFilters,
DatasetFilter,

View file

@ -5,7 +5,7 @@
*/
import { useMemo, useState } from 'react';
import { useDeepCompareEffect } from 'react-use';
import useDeepCompareEffect from 'react-use/lib/useDeepCompareEffect';
import {
CategoryQualityWarningReason,
QualityWarning,

View file

@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { useEffect, useState, useReducer, useCallback } from 'react';
import { useMountedState } from 'react-use';
import useMountedState from 'react-use/lib/useMountedState';
import createContainer from 'constate';
import { pick, throttle } from 'lodash';
import { TimeKey, timeKeyIsBetween } from '../../../../common/time';

View file

@ -6,7 +6,7 @@
import createContainer from 'constate';
import { useState, useContext } from 'react';
import { useThrottle } from 'react-use';
import useThrottle from 'react-use/lib/useThrottle';
import { useLogEntryHighlights } from './log_entry_highlights';
import { useLogSummaryHighlights } from './log_summary_highlights';
import { useNextAndPrevious } from './next_and_previous';

View file

@ -6,7 +6,7 @@
import { useState, useMemo, useEffect, useCallback } from 'react';
import createContainer from 'constate';
import { useSetState } from 'react-use';
import useSetState from 'react-use/lib/useSetState';
import { TimeKey } from '../../../../common/time';
import { datemathToEpochMillis, isValidDatemath } from '../../../utils/datemath';
import { useKibanaTimefilterTime } from '../../../hooks/use_kibana_timefilter_time';

View file

@ -6,7 +6,7 @@
import createContainer from 'constate';
import { useCallback, useMemo, useState } from 'react';
import { useMountedState } from 'react-use';
import useMountedState from 'react-use/lib/useMountedState';
import type { HttpHandler } from 'src/core/public';
import {
LogSourceConfiguration,

View file

@ -5,7 +5,7 @@
*/
import { useContext } from 'react';
import { useThrottle } from 'react-use';
import useThrottle from 'react-use/lib/useThrottle';
import { RendererFunction } from '../../../utils/typed_react';
import { LogSummaryBuckets, useLogSummary } from './log_summary';

View file

@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { useAsync } from 'react-use';
import useAsync from 'react-use/lib/useAsync';
import { useKibanaContextForPlugin } from '../hooks/use_kibana';
import type { Space } from '../../../spaces/public';

View file

@ -5,7 +5,10 @@
*/
import { useCallback } from 'react';
import { useUpdateEffect, useMount } from 'react-use';
import useUpdateEffect from 'react-use/lib/useUpdateEffect';
import useMount from 'react-use/lib/useMount';
import { useKibanaContextForPlugin } from './use_kibana';
import { TimeRange, TimefilterContract } from '../../../../../src/plugins/data/public';

View file

@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n';
import flowRight from 'lodash/flowRight';
import React from 'react';
import { Redirect, RouteComponentProps } from 'react-router-dom';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { HttpStart } from 'src/core/public';
import { useKibana } from '../../../../../../src/plugins/kibana_react/public';
import { findInventoryFields } from '../../../common/inventory_models';

View file

@ -8,7 +8,7 @@ import { EuiBasicTable, EuiBasicTableColumn } from '@elastic/eui';
import numeral from '@elastic/numeral';
import { i18n } from '@kbn/i18n';
import React, { useMemo } from 'react';
import { useSet } from 'react-use';
import useSet from 'react-use/lib/useSet';
import { euiStyled } from '../../../../../../../observability/public';
import {

View file

@ -8,7 +8,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiStat, EuiTitle } from '@elastic/eui';
import numeral from '@elastic/numeral';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { euiStyled } from '../../../../../../../observability/public';
import { LogEntryAnomaly } from '../../../../../../common/http_api';
import { TimeRange } from '../../../../../../common/http_api/shared/time_range';

View file

@ -17,7 +17,7 @@ import { RIGHT_ALIGNMENT } from '@elastic/eui/lib/services';
import moment from 'moment';
import { i18n } from '@kbn/i18n';
import React, { useCallback, useMemo } from 'react';
import { useSet } from 'react-use';
import useSet from 'react-use/lib/useSet';
import { TimeRange } from '../../../../../../common/http_api/shared/time_range';
import {
formatAnomalyScore,

View file

@ -5,7 +5,7 @@
*/
import { useMemo, useState, useCallback, useEffect, useReducer } from 'react';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { useTrackedPromise, CanceledPromiseError } from '../../../utils/use_tracked_promise';
import { callGetLogEntryAnomaliesAPI } from './service_calls/get_log_entry_anomalies';
import { callGetLogEntryAnomaliesDatasetsAPI } from './service_calls/get_log_entry_anomalies_datasets';

View file

@ -8,7 +8,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiButtonEmpty } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { Route, Switch } from 'react-router-dom';
import { useMount } from 'react-use';
import useMount from 'react-use/lib/useMount';
import { AlertDropdown } from '../../alerting/log_threshold';
import { useKibana } from '../../../../../../src/plugins/kibana_react/public';

View file

@ -5,7 +5,7 @@
*/
import React, { useCallback, useEffect } from 'react';
import { useInterval } from 'react-use';
import useInterval from 'react-use/lib/useInterval';
import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui';
import { AutoSizer } from '../../../../components/auto_sizer';

View file

@ -7,7 +7,7 @@
/* eslint-disable max-classes-per-file */
import { DependencyList, useEffect, useMemo, useRef, useState, useCallback } from 'react';
import { useMountedState } from 'react-use';
import useMountedState from 'react-use/lib/useMountedState';
interface UseTrackedPromiseArgs<Arguments extends any[], Result> {
createPromise: (...args: Arguments) => Promise<Result>;

View file

@ -6,7 +6,7 @@
import './filter_popover.scss';
import React, { MouseEventHandler, useState } from 'react';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import { EuiPopover, EuiSpacer } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { FilterValue, defaultLabel, isQueryValid } from '.';

View file

@ -8,7 +8,7 @@ import './advanced_editor.scss';
import React, { useState, MouseEventHandler } from 'react';
import { i18n } from '@kbn/i18n';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import {
EuiFlexGroup,
EuiFlexItem,

View file

@ -6,7 +6,7 @@
import React, { useEffect, useState } from 'react';
import { i18n } from '@kbn/i18n';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import {
EuiButtonEmpty,
EuiFormRow,

View file

@ -5,7 +5,7 @@
*/
import React, { useState, useEffect } from 'react';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import { EuiFieldText, keys } from '@elastic/eui';
import { i18n } from '@kbn/i18n';

View file

@ -10,9 +10,7 @@ import { shallow } from 'enzyme';
import { EuiRange } from '@elastic/eui';
import { ValuesRangeInput } from './values_range_input';
jest.mock('react-use', () => ({
useDebounce: (fn: () => void) => fn(),
}));
jest.mock('react-use/lib/useDebounce', () => (fn: () => void) => fn());
describe('ValuesRangeInput', () => {
it('should render EuiRange correctly', () => {

View file

@ -5,7 +5,7 @@
*/
import React, { useState } from 'react';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import { i18n } from '@kbn/i18n';
import { EuiRange } from '@elastic/eui';

View file

@ -6,7 +6,7 @@
import './toolbar.scss';
import React, { useState } from 'react';
import { useDebounce } from 'react-use';
import useDebounce from 'react-use/lib/useDebounce';
import { i18n } from '@kbn/i18n';
import {
EuiFlexGroup,

View file

@ -5,7 +5,7 @@
*/
import React, { useState, useLayoutEffect, useCallback } from 'react';
import { usePromise } from 'react-use';
import usePromise from 'react-use/lib/usePromise';
import { History } from 'history';
import { i18n } from '@kbn/i18n';

View file

@ -9,7 +9,7 @@ import { Provider } from 'react-redux';
import { I18nProvider } from '@kbn/i18n/react';
import { Router } from 'react-router-dom';
import { History } from 'history';
import { useObservable } from 'react-use';
import useObservable from 'react-use/lib/useObservable';
import { Store } from 'redux';
import { EuiThemeProvider } from '../../../../../xpack_legacy/common';
import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public';

View file

@ -19,7 +19,7 @@ import {
} from '@elastic/eui';
import { cloneDeep } from 'lodash';
import { useUpdateEffect } from 'react-use';
import useUpdateEffect from 'react-use/lib/useUpdateEffect';
import { AggName } from '../../../../../../common/types/aggregations';
import { dictionaryToArray } from '../../../../../../common/types/common';
import {

View file

@ -7,7 +7,7 @@
import React, { useContext, useMemo } from 'react';
import { EuiFormRow, EuiSelect } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { useUpdateEffect } from 'react-use';
import useUpdateEffect from 'react-use/lib/useUpdateEffect';
import { CreateTransformWizardContext } from '../../../../wizard/wizard';
import { commonFilterAggs, filterAggsFieldSupport } from '../constants';
import { IndexPattern } from '../../../../../../../../../../../../src/plugins/data/public';

View file

@ -8,7 +8,7 @@ import React, { useCallback, useContext, useEffect, useState } from 'react';
import { EuiComboBox, EuiFormRow } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
import { debounce } from 'lodash';
import { useUpdateEffect } from 'react-use';
import useUpdateEffect from 'react-use/lib/useUpdateEffect';
import { i18n } from '@kbn/i18n';
import { isEsSearchResponse } from '../../../../../../../../../common/api_schemas/type_guards';
import { useApi } from '../../../../../../../hooks';

View file

@ -6,15 +6,13 @@
import { shallowWithIntl, mountWithIntl } from 'test_utils/enzyme_helpers';
import React from 'react';
import * as reactUse from 'react-use';
import { StepScreenshotDisplay } from '../step_screenshot_display';
describe('StepScreenshotDisplayProps', () => {
// @ts-ignore missing fields don't matter in this test, the component in question only relies on `isIntersecting`
jest.spyOn(reactUse, 'useIntersection').mockImplementation(() => ({
isIntersecting: true,
}));
jest.mock('react-use/lib/useIntersection', () => () => ({
isIntersecting: true,
}));
describe('StepScreenshotDisplayProps', () => {
it('displays screenshot thumbnail when present', () => {
const wrapper = mountWithIntl(
<StepScreenshotDisplay

View file

@ -15,7 +15,7 @@ import {
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
import React, { useContext, useEffect, useRef, useState, FC } from 'react';
import { useIntersection } from 'react-use';
import useIntersection from 'react-use/lib/useIntersection';
import { UptimeSettingsContext, UptimeThemeContext } from '../../../contexts';
interface StepScreenshotDisplayProps {