1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-06-23 01:16:27 +02:00

refactoring for better grouping/readability

This commit is contained in:
andreas-unleash 2022-08-02 12:10:44 +03:00
parent 879c49554b
commit ecf3af48ce
11 changed files with 80 additions and 52 deletions

View File

@ -9,9 +9,10 @@ import { ConditionallyRender } from '../../../../common/ConditionallyRender/Cond
import { useStyles } from './FeatureResultInfoPopoverCell.styles'; import { useStyles } from './FeatureResultInfoPopoverCell.styles';
import { PlaygroundResultFeatureDetails } from './PlaygroundResultFeatureDetails/PlaygroundResultFeatureDetails'; import { PlaygroundResultFeatureDetails } from './PlaygroundResultFeatureDetails/PlaygroundResultFeatureDetails';
import { import {
PlaygroundResultStrategyList, PlaygroundResultStrategyLists,
WrappedPlaygroundResultStrategyList, WrappedPlaygroundResultStrategyList,
} from './PlaygroundResultStrategyList/PlaygroundResultStrategyList'; } from './PlaygroundResultFeatureStrategyList/PlaygroundResultStrategyList/playgroundResultStrategyLists';
import { PlaygroundResultFeatureStrategyList } from './PlaygroundResultFeatureStrategyList/PlaygroundResultFeatureStrategyList';
interface FeatureResultInfoPopoverCellProps { interface FeatureResultInfoPopoverCellProps {
feature: PlaygroundFeatureSchema; feature: PlaygroundFeatureSchema;
@ -63,21 +64,9 @@ export const FeatureResultInfoPopoverCell = ({
input={input} input={input}
onClose={() => setOpen(false)} onClose={() => setOpen(false)}
/> />
<ConditionallyRender <PlaygroundResultFeatureStrategyList
condition={!feature.isEnabledInCurrentEnvironment} feature={feature}
show={ input={input}
<PlaygroundResultStrategyList
strategies={feature?.strategies}
input={input}
/>
}
elseShow={
<WrappedPlaygroundResultStrategyList
strategies={feature?.strategies}
feature={feature}
input={input}
/>
}
/> />
</Popover> </Popover>
</FeatureResultPopoverWrapper> </FeatureResultPopoverWrapper>

View File

@ -28,7 +28,7 @@ export const PlaygroundResultFeatureDetails = ({
const reason = Boolean(feature.isEnabled) const reason = Boolean(feature.isEnabled)
? 'at least one strategy is True' ? 'at least one strategy is True'
: feature?.isEnabledInCurrentEnvironment : !feature?.isEnabledInCurrentEnvironment
? 'the environment is disabled' ? 'the environment is disabled'
: 'all strategies are False'; : 'all strategies are False';

View File

@ -0,0 +1,39 @@
import {
PlaygroundResultStrategyLists,
WrappedPlaygroundResultStrategyList,
} from './PlaygroundResultStrategyList/playgroundResultStrategyLists';
import { ConditionallyRender } from '../../../../../common/ConditionallyRender/ConditionallyRender';
import React from 'react';
import {
PlaygroundFeatureSchema,
PlaygroundRequestSchema,
} from '../../../../../../hooks/api/actions/usePlayground/playground.model';
interface PlaygroundResultFeatureStrategyListProps {
feature: PlaygroundFeatureSchema;
input?: PlaygroundRequestSchema;
}
export const PlaygroundResultFeatureStrategyList = ({
feature,
input,
}: PlaygroundResultFeatureStrategyListProps) => {
return (
<ConditionallyRender
condition={!feature.isEnabledInCurrentEnvironment}
show={
<PlaygroundResultStrategyLists
strategies={feature?.strategies}
input={input}
/>
}
elseShow={
<WrappedPlaygroundResultStrategyList
strategies={feature?.strategies}
feature={feature}
input={input}
/>
}
/>
);
};

View File

@ -3,10 +3,10 @@ import {
PlaygroundRequestSchema, PlaygroundRequestSchema,
} from 'hooks/api/actions/usePlayground/playground.model'; } from 'hooks/api/actions/usePlayground/playground.model';
import React, { Fragment } from 'react'; import React, { Fragment } from 'react';
import { objectId } from '../../../../../../../utils/objectId'; import { objectId } from '../../../../../../../../../utils/objectId';
import { ConditionallyRender } from '../../../../../../common/ConditionallyRender/ConditionallyRender'; import { ConditionallyRender } from '../../../../../../../../common/ConditionallyRender/ConditionallyRender';
import { StrategySeparator } from '../../../../../../common/StrategySeparator/StrategySeparator'; import { StrategySeparator } from '../../../../../../../../common/StrategySeparator/StrategySeparator';
import { ConstraintAccordionView } from '../../../../../../common/ConstraintAccordion/ConstraintAccordionView/ConstraintAccordionView'; import { ConstraintAccordionView } from '../../../../../../../../common/ConstraintAccordion/ConstraintAccordionView/ConstraintAccordionView';
import { styled } from '@mui/material'; import { styled } from '@mui/material';
interface PlaygroundResultConstraintExecutionProps { interface PlaygroundResultConstraintExecutionProps {

View File

@ -6,7 +6,7 @@ import {
getFeatureStrategyIcon, getFeatureStrategyIcon,
} from 'utils/strategyNames'; } from 'utils/strategyNames';
import StringTruncator from 'component/common/StringTruncator/StringTruncator'; import StringTruncator from 'component/common/StringTruncator/StringTruncator';
import { PlaygroundResultChip } from '../../PlaygroundResultChip/PlaygroundResultChip'; import { PlaygroundResultChip } from '../../../../PlaygroundResultChip/PlaygroundResultChip';
import { import {
PlaygroundFeatureStrategyResult, PlaygroundFeatureStrategyResult,
PlaygroundRequestSchema, PlaygroundRequestSchema,

View File

@ -1,14 +1,14 @@
import { import {
PlaygroundFeatureStrategySegmentResult, PlaygroundFeatureStrategySegmentResult,
PlaygroundRequestSchema, PlaygroundRequestSchema,
} from '../../../../../../../hooks/api/actions/usePlayground/playground.model'; } from '../../../../../../../../../hooks/api/actions/usePlayground/playground.model';
import { PlaygroundResultConstraintExecution } from '../PlaygroundResultConstraintExecution/PlaygroundResultConstraintExecution'; import { PlaygroundResultConstraintExecution } from '../PlaygroundResultConstraintExecution/PlaygroundResultConstraintExecution';
import { CancelOutlined, DonutLarge } from '@mui/icons-material'; import { CancelOutlined, DonutLarge } from '@mui/icons-material';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { StrategySeparator } from '../../../../../../common/StrategySeparator/StrategySeparator'; import { StrategySeparator } from '../../../../../../../../common/StrategySeparator/StrategySeparator';
import { useStyles } from './PlaygroundResultSegmentExecution.styles'; import { useStyles } from './PlaygroundResultSegmentExecution.styles';
import { styled, Typography } from '@mui/material'; import { styled, Typography } from '@mui/material';
import { ConditionallyRender } from '../../../../../../common/ConditionallyRender/ConditionallyRender'; import { ConditionallyRender } from '../../../../../../../../common/ConditionallyRender/ConditionallyRender';
interface PlaygroundResultSegmentExecutionProps { interface PlaygroundResultSegmentExecutionProps {
segments?: PlaygroundFeatureStrategySegmentResult[]; segments?: PlaygroundFeatureStrategySegmentResult[];

View File

@ -1,12 +1,12 @@
import { ConditionallyRender } from '../../../../../../common/ConditionallyRender/ConditionallyRender'; import { ConditionallyRender } from '../../../../../../../../common/ConditionallyRender/ConditionallyRender';
import { StrategySeparator } from '../../../../../../common/StrategySeparator/StrategySeparator'; import { StrategySeparator } from '../../../../../../../../common/StrategySeparator/StrategySeparator';
import { Box, Chip, styled } from '@mui/material'; import { Box, Chip, styled } from '@mui/material';
import { useStyles } from './PlaygroundResultStrategyExecution.styles'; import { useStyles } from './PlaygroundResultStrategyExecution.styles';
import { import {
PlaygroundFeatureStrategyResult, PlaygroundFeatureStrategyResult,
PlaygroundRequestSchema, PlaygroundRequestSchema,
} from '../../../../../../../hooks/api/actions/usePlayground/playground.model'; } from '../../../../../../../../../hooks/api/actions/usePlayground/playground.model';
import useUiConfig from '../../../../../../../hooks/api/getters/useUiConfig/useUiConfig'; import useUiConfig from '../../../../../../../../../hooks/api/getters/useUiConfig/useUiConfig';
import React from 'react'; import React from 'react';
import { PlaygroundResultConstraintExecution } from '../PlaygroundResultConstraintExecution/PlaygroundResultConstraintExecution'; import { PlaygroundResultConstraintExecution } from '../PlaygroundResultConstraintExecution/PlaygroundResultConstraintExecution';
import { PlaygroundResultSegmentExecution } from '../PlaygroundResultSegmentExecution/PlaygroundResultSegmentExecution'; import { PlaygroundResultSegmentExecution } from '../PlaygroundResultSegmentExecution/PlaygroundResultSegmentExecution';

View File

@ -2,10 +2,27 @@ import {
PlaygroundFeatureSchema, PlaygroundFeatureSchema,
PlaygroundFeatureStrategyResult, PlaygroundFeatureStrategyResult,
PlaygroundRequestSchema, PlaygroundRequestSchema,
} from '../../../../../../hooks/api/actions/usePlayground/playground.model'; } from '../../../../../../../hooks/api/actions/usePlayground/playground.model';
import { ConditionallyRender } from '../../../../../common/ConditionallyRender/ConditionallyRender'; import { ConditionallyRender } from '../../../../../../common/ConditionallyRender/ConditionallyRender';
import { Alert, styled, Typography } from '@mui/material'; import { Alert, styled, Typography } from '@mui/material';
import { PlaygroundResultFeatureStrategyItem } from '../PlaygroundResultFeatureStrategyItem/PlaygroundResultFeatureStrategyItem'; import { PlaygroundResultFeatureStrategyItem } from './PlaygroundResultFeatureStrategyItem/PlaygroundResultFeatureStrategyItem';
const StyledAlertWrapper = styled('div')(({ theme }) => ({
width: '100%',
display: 'flex',
flexDirection: 'column',
borderRadius: theme.shape.borderRadiusMedium,
border: `1px solid ${theme.palette.info.main}`,
}));
const StyledListWrapper = styled('div')(({ theme }) => ({
padding: theme.spacing(1, 0.5),
}));
const StyledAlert = styled(Alert)(({ theme }) => ({
borderBottomLeftRadius: 0,
borderBottomRightRadius: 0,
}));
interface PlaygroundResultStrategyListProps { interface PlaygroundResultStrategyListProps {
strategies: PlaygroundFeatureStrategyResult[]; strategies: PlaygroundFeatureStrategyResult[];
@ -13,7 +30,7 @@ interface PlaygroundResultStrategyListProps {
compact?: boolean; compact?: boolean;
} }
export const PlaygroundResultStrategyList = ({ export const PlaygroundResultStrategyLists = ({
strategies, strategies,
input, input,
compact = false, compact = false,
@ -42,23 +59,6 @@ export const PlaygroundResultStrategyList = ({
); );
}; };
const StyledAlertWrapper = styled('div')(({ theme }) => ({
width: '100%',
display: 'flex',
flexDirection: 'column',
borderRadius: theme.shape.borderRadiusMedium,
border: `1px solid ${theme.palette.info.main}`,
}));
const StyledListWrapper = styled('div')(({ theme }) => ({
padding: theme.spacing(1, 0.5),
}));
const StyledAlert = styled(Alert)(({ theme }) => ({
borderBottomLeftRadius: 0,
borderBottomRightRadius: 0,
}));
interface WrappedPlaygroundResultStrategyListProps interface WrappedPlaygroundResultStrategyListProps
extends PlaygroundResultStrategyListProps { extends PlaygroundResultStrategyListProps {
feature: PlaygroundFeatureSchema; feature: PlaygroundFeatureSchema;
@ -77,7 +77,7 @@ export const WrappedPlaygroundResultStrategyList = ({
evaluate like this:{' '} evaluate like this:{' '}
</StyledAlert> </StyledAlert>
<StyledListWrapper> <StyledListWrapper>
<PlaygroundResultStrategyList <PlaygroundResultStrategyLists
strategies={strategies} strategies={strategies}
input={input} input={input}
compact compact