mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-03 01:18:43 +02:00
chore: add no unused imports biome rule (#5855)
Adds a Biome rule for "no unused imports", which is something we sometimes have trouble catching. We're adding this as a warning for now. It is safely and easily fixable with `yarn lint:fix`.  
This commit is contained in:
parent
98fd3ce062
commit
b496990f79
@ -4,9 +4,6 @@
|
||||
"enabled": true,
|
||||
"rules": {
|
||||
"recommended": true,
|
||||
"performance": {
|
||||
"noDelete": "off"
|
||||
},
|
||||
"correctness": {
|
||||
"noUnsafeOptionalChaining": "off",
|
||||
"useExhaustiveDependencies": "off"
|
||||
@ -35,6 +32,9 @@
|
||||
"performance": {
|
||||
"noAccumulatingSpread": "off",
|
||||
"noDelete": "off"
|
||||
},
|
||||
"nursery": {
|
||||
"noUnusedImports": "warn"
|
||||
}
|
||||
},
|
||||
"ignore": [
|
||||
|
@ -1,7 +1,3 @@
|
||||
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
||||
import { PermissionGuard } from 'component/common/PermissionGuard/PermissionGuard';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
import { PremiumFeature } from 'component/common/PremiumFeature/PremiumFeature';
|
||||
import { IconButton } from '@mui/material';
|
||||
import { Download } from '@mui/icons-material';
|
||||
import { useAccessOverviewApi } from 'hooks/api/actions/useAccessOverviewApi/useAccessOverviewApi';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC } from 'react';
|
||||
import { FC } from 'react';
|
||||
import { Box, Link, styled } from '@mui/material';
|
||||
|
||||
type SelectAllButtonProps = {
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { vi } from 'vitest';
|
||||
import React from 'react';
|
||||
import { screen, waitFor, within } from '@testing-library/react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import { render } from 'utils/testRenderer';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { Fragment, useState, ChangeEvent, VFC } from 'react';
|
||||
import { Fragment, useState, ChangeEvent, VFC } from 'react';
|
||||
import {
|
||||
Checkbox,
|
||||
FormControlLabel,
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { screen } from '@testing-library/react';
|
||||
import { ProjectsList } from 'component/admin/apiToken/ProjectsList/ProjectsList';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { ChangeEvent, Fragment } from 'react';
|
||||
import { ChangeEvent, Fragment } from 'react';
|
||||
import {
|
||||
FormControl,
|
||||
FormControlLabel,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { Fragment } from 'react';
|
||||
import React from 'react';
|
||||
import { FormControlLabel, Grid, Switch, TextField } from '@mui/material';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { Alert } from '@mui/material';
|
||||
|
||||
export const CorsHelpAlert = () => {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { Alert } from '@mui/material';
|
||||
|
||||
export const MaintenanceTooltip = () => {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { REMOVE_USER_ERROR } from 'hooks/api/actions/useAdminUsersApi/useAdminUsersApi';
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React, { useState } from 'react';
|
||||
import classnames from 'classnames';
|
||||
import { Box, styled, TextField, Typography } from '@mui/material';
|
||||
import { Box, styled, Typography } from '@mui/material';
|
||||
import { modalStyles } from 'component/admin/users/util';
|
||||
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
||||
import { useThemeStyles } from 'themes/themeStyles';
|
||||
|
@ -34,7 +34,6 @@ import { UserLimitWarning } from './UserLimitWarning/UserLimitWarning';
|
||||
import { RoleCell } from 'component/common/Table/cells/RoleCell/RoleCell';
|
||||
import { useSearch } from 'hooks/useSearch';
|
||||
import { Download } from '@mui/icons-material';
|
||||
import { useUiFlag } from 'hooks/useUiFlag';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
|
||||
const UsersList = () => {
|
||||
|
@ -6,10 +6,7 @@ import {
|
||||
UPDATE_FEATURE,
|
||||
} from 'component/providers/AccessProvider/permissions';
|
||||
import { PermissionHOC } from 'component/common/PermissionHOC/PermissionHOC';
|
||||
import useProjectApi from 'hooks/api/actions/useProjectApi/useProjectApi';
|
||||
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||
import { useFeaturesArchive } from 'hooks/api/getters/useFeaturesArchive/useFeaturesArchive';
|
||||
import useToast from 'hooks/useToast';
|
||||
import { ArchivedFeatureDeleteConfirm } from './ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm';
|
||||
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||
import { ArchivedFeatureReviveConfirm } from './ArchivedFeatureActionCell/ArchivedFeatureReviveConfirm/ArchivedFeatureReviveConfirm';
|
||||
|
@ -17,15 +17,11 @@ import { DateCell } from 'component/common/Table/cells/DateCell/DateCell';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { Search } from 'component/common/Search/Search';
|
||||
import { FeatureTypeCell } from 'component/common/Table/cells/FeatureTypeCell/FeatureTypeCell';
|
||||
import { FeatureSeenCell } from 'component/common/Table/cells/FeatureSeenCell/FeatureSeenCell';
|
||||
import { LinkCell } from 'component/common/Table/cells/LinkCell/LinkCell';
|
||||
import { ArchivedFeatureActionCell } from 'component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureActionCell';
|
||||
import { featuresPlaceholder } from 'component/feature/FeatureToggleList/FeatureToggleListTable';
|
||||
import theme from 'themes/theme';
|
||||
import { FeatureSchema } from 'openapi';
|
||||
import { useFeatureArchiveApi } from 'hooks/api/actions/useFeatureArchiveApi/useReviveFeatureApi';
|
||||
import useToast from 'hooks/useToast';
|
||||
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||
import { useSearch } from 'hooks/useSearch';
|
||||
import { FeatureArchivedCell } from './FeatureArchivedCell/FeatureArchivedCell';
|
||||
import { useSearchParams } from 'react-router-dom';
|
||||
|
@ -5,7 +5,6 @@ import { formatUnknownError } from 'utils/formatUnknownError';
|
||||
import useToast from 'hooks/useToast';
|
||||
import useProjectApi from 'hooks/api/actions/useProjectApi/useProjectApi';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { useUiFlag } from '../../../../../hooks/useUiFlag';
|
||||
|
||||
interface IArchivedFeatureReviveConfirmProps {
|
||||
revivedFeatures: string[];
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { Banner } from 'component/banners/Banner/Banner';
|
||||
import { useLicenseCheck } from 'hooks/api/getters/useLicense/useLicense';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
import { useVariant } from 'hooks/useVariant';
|
||||
import { IBanner } from 'interfaces/banner';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { VFC } from 'react';
|
||||
import { VFC } from 'react';
|
||||
import { Box, Typography } from '@mui/material';
|
||||
import type { IChangeRequest } from '../changeRequest.types';
|
||||
import { FeatureToggleChanges } from './Changes/FeatureToggleChanges';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { FeatureStrategyForm } from 'component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm';
|
||||
import FormTemplate from 'component/common/FormTemplate/FormTemplate';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { screen } from '@testing-library/react';
|
||||
import { FeatureChange } from './FeatureChange';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { FeatureStrategyForm } from 'component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm';
|
||||
import FormTemplate from 'component/common/FormTemplate/FormTemplate';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
@ -8,7 +8,6 @@ import useToast from 'hooks/useToast';
|
||||
import { IFeatureStrategy } from 'interfaces/strategy';
|
||||
import { UPDATE_FEATURE_STRATEGY } from 'component/providers/AccessProvider/permissions';
|
||||
import { ISegment } from 'interfaces/segment';
|
||||
import { formatStrategyName } from 'utils/strategyNames';
|
||||
import { useFormErrors } from 'hooks/useFormErrors';
|
||||
import { useCollaborateData } from 'hooks/useCollaborateData';
|
||||
import { useFeature } from 'hooks/api/getters/useFeature/useFeature';
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import React from 'react';
|
||||
import { NameWithChangeInfo } from './NameWithChangeInfo';
|
||||
|
||||
test.each(['', undefined])(
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Box } from '@mui/material';
|
||||
import React, { FC, useState } from 'react';
|
||||
import { FC, useState } from 'react';
|
||||
import { Typography, Tooltip } from '@mui/material';
|
||||
import TimeAgo from 'react-timeago';
|
||||
import { IChangeRequest } from 'component/changeRequest/changeRequest.types';
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { vi } from 'vitest';
|
||||
import { fireEvent, screen } from '@testing-library/react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC } from 'react';
|
||||
import { FC } from 'react';
|
||||
import {
|
||||
Box,
|
||||
IconButton,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC } from 'react';
|
||||
import { FC } from 'react';
|
||||
import { Typography } from '@mui/material';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { ChangeRequestApprover } from './ChangeRequestReviewer';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { IChangeRequestApproval } from '../../changeRequest.types';
|
||||
import React, { FC } from 'react';
|
||||
import { FC } from 'react';
|
||||
import { Typography } from '@mui/material';
|
||||
import { ChangeRequestRejector } from './ChangeRequestReviewer';
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Box, styled, Typography } from '@mui/material';
|
||||
import React, { FC } from 'react';
|
||||
import { FC } from 'react';
|
||||
import { StyledAvatar } from '../ChangeRequestHeader/ChangeRequestHeader.styles';
|
||||
import { CheckCircle, Cancel } from '@mui/icons-material';
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { render } from 'utils/testRenderer';
|
||||
import React from 'react';
|
||||
import { screen } from '@testing-library/react';
|
||||
import { ChangeRequestReviewers } from './ChangeRequestReviewers';
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Box, Paper, styled, Typography } from '@mui/material';
|
||||
import React, { FC, ReactNode } from 'react';
|
||||
import { FC, ReactNode } from 'react';
|
||||
import { ConditionallyRender } from '../../../common/ConditionallyRender/ConditionallyRender';
|
||||
import { ChangeRequestRejections } from './ChangeRequestRejections';
|
||||
import { ChangeRequestApprovals } from './ChangeRequestApprovals';
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { screen } from '@testing-library/react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { ChangeRequestTimeline, determineColor } from './ChangeRequestTimeline';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { FC } from 'react';
|
||||
import { Box, Paper, styled, Tooltip, Typography } from '@mui/material';
|
||||
import { Box, Paper, styled, Typography } from '@mui/material';
|
||||
import Timeline from '@mui/lab/Timeline';
|
||||
import TimelineItem, { timelineItemClasses } from '@mui/lab/TimelineItem';
|
||||
import TimelineSeparator from '@mui/lab/TimelineSeparator';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC, useState } from 'react';
|
||||
import { FC, useState } from 'react';
|
||||
import {
|
||||
Box,
|
||||
Button,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC, useState } from 'react';
|
||||
import { FC, useState } from 'react';
|
||||
import { screen } from '@testing-library/react';
|
||||
import { ChangeRequestTitle } from './ChangeRequestTitle';
|
||||
import { ChangeRequestState } from 'component/changeRequest/changeRequest.types';
|
||||
|
@ -1,9 +1,6 @@
|
||||
import { VFC } from 'react';
|
||||
import { TextCell } from 'component/common/Table/cells/TextCell/TextCell';
|
||||
import {
|
||||
ChangeRequestState,
|
||||
IChangeRequest,
|
||||
} from 'component/changeRequest/changeRequest.types';
|
||||
import { IChangeRequest } from 'component/changeRequest/changeRequest.types';
|
||||
import { ChangeRequestStatusBadge } from 'component/changeRequest/ChangeRequestStatusBadge/ChangeRequestStatusBadge';
|
||||
|
||||
interface IChangeRequestStatusCellProps {
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { render } from 'utils/testRenderer';
|
||||
import React from 'react';
|
||||
import { UpdateCount } from './UpdateCount';
|
||||
import { screen } from '@testing-library/react';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { CSSProperties, useEffect, useState, useRef, FC } from 'react';
|
||||
import { CSSProperties, useEffect, useState, useRef, FC } from 'react';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
|
||||
interface IAnimateOnMountProps {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { ReactElement } from 'react';
|
||||
import { ReactElement } from 'react';
|
||||
import { ANNOUNCER_ELEMENT_TEST_ID } from 'utils/testIds';
|
||||
import { styled } from '@mui/material';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { ReactElement, useMemo, useState, ReactNode } from 'react';
|
||||
import { ReactElement, useMemo, useState, ReactNode } from 'react';
|
||||
import { AnnouncerContext } from '../AnnouncerContext/AnnouncerContext';
|
||||
import { AnnouncerElement } from 'component/common/Announcer/AnnouncerElement/AnnouncerElement';
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { Tooltip, Box } from '@mui/material';
|
||||
import { ReactComponent as CaseSensitive } from 'assets/icons/24_Text format.svg';
|
||||
import { ReactComponent as CaseSensitiveOff } from 'assets/icons/24_Text format off.svg';
|
||||
import React from 'react';
|
||||
import {
|
||||
StyledToggleButtonOff,
|
||||
StyledToggleButtonOn,
|
||||
|
@ -1,11 +1,10 @@
|
||||
import React, {
|
||||
forwardRef,
|
||||
Fragment,
|
||||
Ref,
|
||||
RefObject,
|
||||
useImperativeHandle,
|
||||
} from 'react';
|
||||
import { Box, Button, styled, Tooltip } from '@mui/material';
|
||||
import { Button, styled, Tooltip } from '@mui/material';
|
||||
import { HelpOutline } from '@mui/icons-material';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
import { ConstraintAccordion } from 'component/common/ConstraintAccordion/ConstraintAccordion';
|
||||
|
@ -3,7 +3,6 @@ import { ConstraintViewHeaderOperator } from './ConstraintViewHeaderOperator';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { ConstraintAccordionViewHeaderSingleValue } from './ConstraintAccordionViewHeaderSingleValue';
|
||||
import { ConstraintAccordionViewHeaderMultipleValues } from './ConstraintAccordionViewHeaderMultipleValues';
|
||||
import React from 'react';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
|
||||
const StyledHeaderText = styled('span')(({ theme }) => ({
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { styled } from '@mui/material';
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import { useEffect, useMemo, useState } from 'react';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
|
||||
const StyledValuesSpan = styled('span')(({ theme }) => ({
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import { useEffect } from 'react';
|
||||
import { Chip, styled } from '@mui/material';
|
||||
import { formatConstraintValue } from 'utils/formatConstraintValue';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
import { formatOperatorDescription } from 'component/common/ConstraintAccordion/ConstraintOperator/formatOperatorDescription';
|
||||
import React from 'react';
|
||||
import { styled } from '@mui/material';
|
||||
|
||||
interface IConstraintOperatorProps {
|
||||
|
@ -14,7 +14,7 @@ import {
|
||||
numOperators,
|
||||
inOperators,
|
||||
} from 'constants/operators';
|
||||
import React, { useState } from 'react';
|
||||
import { useState } from 'react';
|
||||
import { formatOperatorDescription } from 'component/common/ConstraintAccordion/ConstraintOperator/formatOperatorDescription';
|
||||
|
||||
interface IConstraintOperatorSelectProps {
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { vi } from 'vitest';
|
||||
import React from 'react';
|
||||
import { screen, waitFor } from '@testing-library/react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { testServerRoute, testServerSetup } from 'utils/testServer';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Box } from '@mui/material';
|
||||
import React, { FC, ReactNode, useEffect, useRef, useState } from 'react';
|
||||
import { FC, ReactNode, useEffect, useRef, useState } from 'react';
|
||||
import { StyledPopover } from 'component/filter/FilterItem/FilterItem.styles';
|
||||
import { FilterItemChip } from 'component/filter/FilterItem/FilterItemChip/FilterItemChip';
|
||||
import { DateCalendar, LocalizationProvider } from '@mui/x-date-pickers';
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { render } from '@testing-library/react';
|
||||
import { Highlighter } from './Highlighter'; // adjust the import path accordingly
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Fragment, VFC } from 'react';
|
||||
import { VFC } from 'react';
|
||||
import { safeRegExp } from '@server/util/escape-regex';
|
||||
import { styled } from '@mui/material';
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { Button, styled } from '@mui/material';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
import { CANCEL } from '../ConstraintAccordionEdit';
|
||||
|
||||
import React from 'react';
|
||||
import { newOperators } from 'constants/operators';
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { Tooltip, Box } from '@mui/material';
|
||||
import { ReactComponent as CaseSensitive } from 'assets/icons/24_Text format.svg';
|
||||
import { ReactComponent as CaseSensitiveOff } from 'assets/icons/24_Text format off.svg';
|
||||
import React from 'react';
|
||||
import {
|
||||
StyledToggleButtonOff,
|
||||
StyledToggleButtonOn,
|
||||
|
@ -3,7 +3,6 @@ import { ConstraintViewHeaderOperator } from './ConstraintViewHeaderOperator';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { ConstraintAccordionViewHeaderSingleValue } from './ConstraintAccordionViewHeaderSingleValue';
|
||||
import { ConstraintAccordionViewHeaderMultipleValues } from './ConstraintAccordionViewHeaderMultipleValues';
|
||||
import React from 'react';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
|
||||
const StyledHeaderText = styled('span')(({ theme }) => ({
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { styled } from '@mui/material';
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import { useEffect, useMemo, useState } from 'react';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
|
||||
const StyledValuesSpan = styled('span')(({ theme }) => ({
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import { useEffect } from 'react';
|
||||
import { Chip, styled } from '@mui/material';
|
||||
import { formatConstraintValue } from 'utils/formatConstraintValue';
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { IConstraint } from 'interfaces/strategy';
|
||||
import { formatOperatorDescription } from 'component/common/ConstraintAccordion/ConstraintOperator/formatOperatorDescription';
|
||||
import React from 'react';
|
||||
import { styled } from '@mui/material';
|
||||
|
||||
interface IConstraintOperatorProps {
|
||||
|
@ -14,7 +14,7 @@ import {
|
||||
numOperators,
|
||||
inOperators,
|
||||
} from 'constants/operators';
|
||||
import React, { useState } from 'react';
|
||||
import { useState } from 'react';
|
||||
import { formatOperatorDescription } from 'component/common/ConstraintAccordion/ConstraintOperator/formatOperatorDescription';
|
||||
|
||||
interface IConstraintOperatorSelectProps {
|
||||
|
@ -1,7 +1,6 @@
|
||||
import React, {
|
||||
forwardRef,
|
||||
Fragment,
|
||||
Ref,
|
||||
RefObject,
|
||||
useImperativeHandle,
|
||||
} from 'react';
|
||||
@ -14,10 +13,7 @@ import { IUseWeakMap, useWeakMap } from 'hooks/useWeakMap';
|
||||
import { createEmptyConstraint } from 'component/common/ConstraintAccordion/ConstraintAccordionList/createEmptyConstraint';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { StrategySeparator } from 'component/common/StrategySeparator/StrategySeparator';
|
||||
import {
|
||||
IConstraintAccordionProps,
|
||||
NewConstraintAccordion,
|
||||
} from 'component/common/NewConstraintAccordion/NewConstraintAccordion';
|
||||
import { NewConstraintAccordion } from 'component/common/NewConstraintAccordion/NewConstraintAccordion';
|
||||
|
||||
export interface IConstraintAccordionListProps {
|
||||
constraints: IConstraint[];
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC, ReactNode } from 'react';
|
||||
import { FC, ReactNode } from 'react';
|
||||
import classnames from 'classnames';
|
||||
import { PageHeader } from 'component/common/PageHeader/PageHeader';
|
||||
import { Paper, PaperProps, styled } from '@mui/material';
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { FilterList, History } from '@mui/icons-material';
|
||||
import { Box, Divider, Paper, styled } from '@mui/material';
|
||||
import { History } from '@mui/icons-material';
|
||||
import { Box, styled } from '@mui/material';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { IGetSearchContextOutput } from 'hooks/useSearch';
|
||||
import { VFC } from 'react';
|
||||
import { StyledCode } from './SearchInstructions/SearchInstructions';
|
||||
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { FilterList, History } from '@mui/icons-material';
|
||||
import { Box, Divider, Paper, styled } from '@mui/material';
|
||||
import { Box, Divider, styled } from '@mui/material';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import {
|
||||
getColumnValues,
|
||||
@ -7,7 +7,7 @@ import {
|
||||
getFilterValues,
|
||||
IGetSearchContextOutput,
|
||||
} from 'hooks/useSearch';
|
||||
import React, { VFC } from 'react';
|
||||
import { VFC } from 'react';
|
||||
import { SearchDescription } from './SearchDescription/SearchDescription';
|
||||
import {
|
||||
SearchInstructions,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC, VFC } from 'react';
|
||||
import { FC, VFC } from 'react';
|
||||
import TimeAgo from 'react-timeago';
|
||||
import { styled, Tooltip, useTheme } from '@mui/material';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { VFC } from 'react';
|
||||
import { FeatureSchema, FeatureSearchResponseSchema } from 'openapi';
|
||||
import { FeatureSearchResponseSchema } from 'openapi';
|
||||
import { styled, Typography } from '@mui/material';
|
||||
import { TextCell } from '../TextCell/TextCell';
|
||||
import { Highlighter } from 'component/common/Highlighter/Highlighter';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { VFC } from 'react';
|
||||
import { FeatureSchema, TagSchema } from 'openapi';
|
||||
import { FeatureSchema } from 'openapi';
|
||||
import { styled, Typography } from '@mui/material';
|
||||
import { TextCell } from '../TextCell/TextCell';
|
||||
import { Highlighter } from 'component/common/Highlighter/Highlighter';
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Box } from '@mui/material';
|
||||
import React, { ReactNode } from 'react';
|
||||
import { ReactNode } from 'react';
|
||||
|
||||
interface IIconCellProps {
|
||||
icon: ReactNode;
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { screen } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
import { testServerRoute, testServerSetup } from 'utils/testServer';
|
||||
import { ContextFieldUsage } from './ContextFieldUsage';
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { screen } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
import { testServerRoute, testServerSetup } from '../../../../utils/testServer';
|
||||
import ContextList from './ContextList';
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { render } from 'utils/testRenderer';
|
||||
import React from 'react';
|
||||
import { screen } from '@testing-library/react';
|
||||
import EventDiff from './EventDiff';
|
||||
|
||||
|
@ -4,7 +4,7 @@ import { PageContent } from 'component/common/PageContent/PageContent';
|
||||
import { PageHeader } from 'component/common/PageHeader/PageHeader';
|
||||
import EventCard from 'component/events/EventCard/EventCard';
|
||||
import { useEventSettings } from 'hooks/useEventSettings';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { useState, useEffect } from 'react';
|
||||
import { Search } from 'component/common/Search/Search';
|
||||
import theme from 'themes/theme';
|
||||
import { useEventSearch } from 'hooks/api/getters/useEventSearch/useEventSearch';
|
||||
|
@ -10,7 +10,6 @@ import {
|
||||
styled,
|
||||
} from '@mui/material';
|
||||
import { FileCopy } from '@mui/icons-material';
|
||||
import { styles as themeStyles } from 'component/common';
|
||||
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||
import { trim } from 'component/common/util';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC, useState } from 'react';
|
||||
import { FC, useState } from 'react';
|
||||
import { Box, styled, Typography } from '@mui/material';
|
||||
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
||||
import GeneralSelect from 'component/common/GeneralSelect/GeneralSelect';
|
||||
|
@ -12,7 +12,6 @@ import {
|
||||
IConstraintAccordionListRef,
|
||||
useConstraintAccordionList,
|
||||
} from 'component/common/ConstraintAccordion/ConstraintAccordionList/ConstraintAccordionList';
|
||||
import { NewConstraintAccordion } from 'component/common/NewConstraintAccordion/NewConstraintAccordion';
|
||||
import { NewConstraintAccordionList } from 'component/common/NewConstraintAccordion/NewConstraintAccordionList/NewConstraintAccordionList';
|
||||
|
||||
interface IConstraintAccordionListProps {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
||||
import { useRequiredQueryParam } from 'hooks/useRequiredQueryParam';
|
||||
import { FeatureStrategyForm } from 'component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { FC } from 'react';
|
||||
import { FC } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { Alert } from '@mui/material';
|
||||
|
@ -45,9 +45,7 @@ import { formatStrategyName } from 'utils/strategyNames';
|
||||
import { Badge } from 'component/common/Badge/Badge';
|
||||
import EnvironmentIcon from 'component/common/EnvironmentIcon/EnvironmentIcon';
|
||||
import { useFeedback } from 'component/feedbackNew/useFeedback';
|
||||
import { useUserSubmittedFeedback } from 'hooks/useSubmittedFeedback';
|
||||
import { useUiFlag } from 'hooks/useUiFlag';
|
||||
import { NewStrategyVariants } from 'component/feature/StrategyTypes/NewStrategyVariants';
|
||||
|
||||
interface IFeatureStrategyFormProps {
|
||||
feature: IFeatureToggle;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { formatAddStrategyApiCode } from 'component/feature/FeatureStrategy/FeatureStrategyCreate/FeatureStrategyCreate';
|
||||
import { screen, waitFor, fireEvent } from '@testing-library/react';
|
||||
import { screen, fireEvent } from '@testing-library/react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { Route, Routes } from 'react-router-dom';
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
||||
import { useRequiredQueryParam } from 'hooks/useRequiredQueryParam';
|
||||
import { FeatureStrategyForm } from 'component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm';
|
||||
import FormTemplate from 'component/common/FormTemplate/FormTemplate';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
import useFeatureStrategyApi from 'hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi';
|
||||
@ -18,7 +17,6 @@ import {
|
||||
} from '../FeatureStrategyEdit/FeatureStrategyEdit';
|
||||
import { CREATE_FEATURE_STRATEGY } from 'component/providers/AccessProvider/permissions';
|
||||
import { ISegment } from 'interfaces/segment';
|
||||
import { formatStrategyName } from 'utils/strategyNames';
|
||||
import { useFormErrors } from 'hooks/useFormErrors';
|
||||
import { createFeatureStrategy } from 'utils/createFeatureStrategy';
|
||||
import { useStrategy } from 'hooks/api/getters/useStrategy/useStrategy';
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { FeatureStrategyForm } from 'component/feature/FeatureStrategy/FeatureStrategyForm/FeatureStrategyForm';
|
||||
import FormTemplate from 'component/common/FormTemplate/FormTemplate';
|
||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||
import { useRequiredQueryParam } from 'hooks/useRequiredQueryParam';
|
||||
@ -16,7 +15,6 @@ import {
|
||||
import { UPDATE_FEATURE_STRATEGY } from 'component/providers/AccessProvider/permissions';
|
||||
import { ISegment } from 'interfaces/segment';
|
||||
import { useSegments } from 'hooks/api/getters/useSegments/useSegments';
|
||||
import { formatStrategyName } from 'utils/strategyNames';
|
||||
import { useFormErrors } from 'hooks/useFormErrors';
|
||||
import { useStrategy } from 'hooks/api/getters/useStrategy/useStrategy';
|
||||
import { sortStrategyParameters } from 'utils/sortStrategyParameters';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useState } from 'react';
|
||||
import { useState } from 'react';
|
||||
import { Alert, Box, styled, Typography } from '@mui/material';
|
||||
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
||||
import GeneralSelect from 'component/common/GeneralSelect/GeneralSelect';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useState } from 'react';
|
||||
import { useState } from 'react';
|
||||
import { Alert, Box, styled, Typography } from '@mui/material';
|
||||
import { Dialogue } from 'component/common/Dialogue/Dialogue';
|
||||
import GeneralSelect from 'component/common/GeneralSelect/GeneralSelect';
|
||||
|
@ -2,7 +2,6 @@ import { screen } from '@testing-library/react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { testServerRoute, testServerSetup } from 'utils/testServer';
|
||||
import { FeatureToggleFilters } from './FeatureToggleFilters';
|
||||
import { FILTER_ITEM } from 'utils/testIds';
|
||||
|
||||
const server = testServerSetup();
|
||||
|
||||
|
@ -56,7 +56,6 @@ import useLoading from 'hooks/useLoading';
|
||||
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||
import { useFeedback } from '../../feedbackNew/useFeedback';
|
||||
import { ReviewsOutlined } from '@mui/icons-material';
|
||||
import { useUserSubmittedFeedback } from 'hooks/useSubmittedFeedback';
|
||||
|
||||
export const featuresPlaceholder = Array(15).fill({
|
||||
name: 'Name of the feature',
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { useCallback, useEffect, useMemo, useState, VFC } from 'react';
|
||||
import {
|
||||
Box,
|
||||
IconButton,
|
||||
Link,
|
||||
Tooltip,
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import TimeAgo from 'react-timeago';
|
||||
import { LastSeenTooltip } from 'component/common/Table/cells/FeatureSeenCell/LastSeenTooltip';
|
||||
import { FC, ReactElement } from 'react';
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { getCreateTogglePath } from 'utils/routePathHelpers';
|
||||
import { useFeaturesArchive } from 'hooks/api/getters/useFeaturesArchive/useFeaturesArchive';
|
||||
|
@ -1,15 +1,9 @@
|
||||
import React from 'react';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { screen } from '@testing-library/react';
|
||||
import {
|
||||
FeatureStrategyRemoveDialogue,
|
||||
SuggestFeatureStrategyRemoveDialogue,
|
||||
} from './DialogStrategyRemove';
|
||||
import {
|
||||
ChangeRequestState,
|
||||
IChangeRequestFeature,
|
||||
IFeatureChange,
|
||||
} from 'component/changeRequest/changeRequest.types';
|
||||
|
||||
const strategyId = 'c81e3a1d-e91c-4083-bd0f-75bb8a9e32a2';
|
||||
const projectId = 'default';
|
||||
|
@ -10,7 +10,6 @@ import { useFeature } from 'hooks/api/getters/useFeature/useFeature';
|
||||
import { useChangeRequestApi } from 'hooks/api/actions/useChangeRequestApi/useChangeRequestApi';
|
||||
import { useChangeRequestsEnabled } from 'hooks/useChangeRequestsEnabled';
|
||||
import { usePendingChangeRequests } from 'hooks/api/getters/usePendingChangeRequests/usePendingChangeRequests';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
import { useScheduledChangeRequestsWithStrategy } from 'hooks/api/getters/useScheduledChangeRequestsWithStrategy/useScheduledChangeRequestsWithStrategy';
|
||||
interface IFeatureStrategyRemoveProps {
|
||||
projectId: string;
|
||||
|
@ -4,7 +4,6 @@ import GeneralSelect, {
|
||||
ISelectOption,
|
||||
IGeneralSelectProps,
|
||||
} from 'component/common/GeneralSelect/GeneralSelect';
|
||||
import React from 'react';
|
||||
|
||||
interface IFeatureProjectSelectProps
|
||||
extends Omit<IGeneralSelectProps, 'options'> {
|
||||
|
@ -4,7 +4,6 @@ import { testServerRoute, testServerSetup } from 'utils/testServer';
|
||||
import FeatureSettingsProjectConfirm from './FeatureSettingsProjectConfirm';
|
||||
import { IFeatureToggle } from 'interfaces/featureToggle';
|
||||
import { Route, Routes } from 'react-router-dom';
|
||||
import React from 'react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
|
||||
const server = testServerSetup();
|
||||
|
@ -9,7 +9,6 @@ import { Link } from 'react-router-dom';
|
||||
import { IChangeRequest } from 'component/changeRequest/changeRequest.types';
|
||||
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
||||
import { useChangeRequestsEnabled } from 'hooks/useChangeRequestsEnabled';
|
||||
import { useUiFlag } from 'hooks/useUiFlag';
|
||||
|
||||
const StyledContainer = styled('div')(({ theme }) => ({
|
||||
display: 'grid',
|
||||
|
@ -19,7 +19,6 @@ import useUnleashContext from 'hooks/api/getters/useUnleashContext/useUnleashCon
|
||||
import { WeightType } from 'constants/variantTypes';
|
||||
import { IFeatureVariantEdit } from '../EnvironmentVariantsModal';
|
||||
import { Delete } from '@mui/icons-material';
|
||||
import { useUiFlag } from 'hooks/useUiFlag';
|
||||
|
||||
const LazyReactJSONEditor = React.lazy(() => import('./ReactJSONEditor'));
|
||||
|
||||
|
@ -49,7 +49,6 @@ import { FavoriteIconButton } from 'component/common/FavoriteIconButton/Favorite
|
||||
import { ReactComponent as ChildLinkIcon } from 'assets/icons/link-child.svg';
|
||||
import { ReactComponent as ParentLinkIcon } from 'assets/icons/link-parent.svg';
|
||||
import { ChildrenTooltip } from './FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/ChildrenTooltip';
|
||||
import { useUiFlag } from 'hooks/useUiFlag';
|
||||
import copy from 'copy-to-clipboard';
|
||||
import useToast from 'hooks/useToast';
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { IStrategy } from 'interfaces/strategy';
|
||||
|
||||
interface IDefaultStrategyProps {
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { useState } from 'react';
|
||||
import { screen, fireEvent, within } from '@testing-library/react';
|
||||
import { screen, fireEvent } from '@testing-library/react';
|
||||
import FlexibleStrategy from './FlexibleStrategy';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { Route, Routes } from 'react-router-dom';
|
||||
|
@ -1,4 +1,3 @@
|
||||
import React from 'react';
|
||||
import { IStrategy, IFeatureStrategyParameters } from 'interfaces/strategy';
|
||||
import { styled } from '@mui/system';
|
||||
import { StrategyParameter } from 'component/feature/StrategyTypes/StrategyParameter/StrategyParameter';
|
||||
|
@ -12,7 +12,6 @@ import SplitPreviewSlider from './SplitPreviewSlider/SplitPreviewSlider';
|
||||
import { HelpIcon } from '../../common/HelpIcon/HelpIcon';
|
||||
import { StrategyVariantsUpgradeAlert } from '../../common/StrategyVariantsUpgradeAlert/StrategyVariantsUpgradeAlert';
|
||||
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||
import { useUiFlag } from 'hooks/useUiFlag';
|
||||
import { Add } from '@mui/icons-material';
|
||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { ChangeEvent, useState } from 'react';
|
||||
import { ChangeEvent, useState } from 'react';
|
||||
import {
|
||||
Button,
|
||||
Chip,
|
||||
|
@ -4,7 +4,7 @@ import { StrategyVariants } from './StrategyVariants';
|
||||
import { Route, Routes } from 'react-router-dom';
|
||||
import { UPDATE_FEATURE_ENVIRONMENT_VARIANTS } from '../../providers/AccessProvider/permissions';
|
||||
import { IFeatureStrategy } from '../../../interfaces/strategy';
|
||||
import React, { useState } from 'react';
|
||||
import { useState } from 'react';
|
||||
|
||||
test('should render variants', async () => {
|
||||
let currentStrategy: Partial<IFeatureStrategy> = {};
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { IconButton, Modal, styled } from '@mui/material';
|
||||
import React, { useContext } from 'react';
|
||||
import { useContext } from 'react';
|
||||
import {
|
||||
feedbackCESContext,
|
||||
IFeedbackCESState,
|
||||
|
@ -1,10 +1,4 @@
|
||||
import React, {
|
||||
useState,
|
||||
ReactNode,
|
||||
useMemo,
|
||||
useCallback,
|
||||
useEffect,
|
||||
} from 'react';
|
||||
import { useState, ReactNode, useMemo, useCallback, useEffect } from 'react';
|
||||
import { FeedbackCES } from 'component/feedback/FeedbackCES/FeedbackCES';
|
||||
import {
|
||||
feedbackCESContext,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user