mirror of
https://github.com/Unleash/unleash.git
synced 2025-08-04 13:48:56 +02:00
feat: change requests, use new accordion list not legacy (#9825)
This should be final piece where old accordion is used. 
This commit is contained in:
parent
9977b3e0f8
commit
08c11664ce
@ -1,5 +1,6 @@
|
|||||||
import type React from 'react';
|
import type React from 'react';
|
||||||
import type { FC, ReactNode } from 'react';
|
import type { FC, ReactNode } from 'react';
|
||||||
|
import { useRef } from 'react';
|
||||||
import { Box, styled, Typography } from '@mui/material';
|
import { Box, styled, Typography } from '@mui/material';
|
||||||
import type {
|
import type {
|
||||||
ChangeRequestState,
|
ChangeRequestState,
|
||||||
@ -9,6 +10,12 @@ import type {
|
|||||||
import { useSegment } from 'hooks/api/getters/useSegment/useSegment';
|
import { useSegment } from 'hooks/api/getters/useSegment/useSegment';
|
||||||
import { SegmentDiff, SegmentTooltipLink } from '../../SegmentTooltipLink';
|
import { SegmentDiff, SegmentTooltipLink } from '../../SegmentTooltipLink';
|
||||||
import { ConstraintAccordionList } from 'component/common/LegacyConstraintAccordion/ConstraintAccordionList/ConstraintAccordionList';
|
import { ConstraintAccordionList } from 'component/common/LegacyConstraintAccordion/ConstraintAccordionList/ConstraintAccordionList';
|
||||||
|
import {
|
||||||
|
NewConstraintAccordionList,
|
||||||
|
useConstraintAccordionList,
|
||||||
|
} from 'component/common/NewConstraintAccordion/NewConstraintAccordionList/NewConstraintAccordionList';
|
||||||
|
import type { IConstraintAccordionListRef } from 'component/common/NewConstraintAccordion/NewConstraintAccordionList/NewConstraintAccordionList';
|
||||||
|
import { useUiFlag } from 'hooks/useUiFlag';
|
||||||
import { ChangeOverwriteWarning } from './ChangeOverwriteWarning/ChangeOverwriteWarning';
|
import { ChangeOverwriteWarning } from './ChangeOverwriteWarning/ChangeOverwriteWarning';
|
||||||
|
|
||||||
const ChangeItemCreateEditWrapper = styled(Box)(({ theme }) => ({
|
const ChangeItemCreateEditWrapper = styled(Box)(({ theme }) => ({
|
||||||
@ -65,6 +72,9 @@ export const SegmentChangeDetails: FC<{
|
|||||||
: currentSegment?.name;
|
: currentSegment?.name;
|
||||||
const referenceSegment =
|
const referenceSegment =
|
||||||
changeRequestState === 'Applied' ? snapshotSegment : currentSegment;
|
changeRequestState === 'Applied' ? snapshotSegment : currentSegment;
|
||||||
|
const addEditStrategy = useUiFlag('addEditStrategy');
|
||||||
|
const constraintsRef = useRef<IConstraintAccordionListRef | null>(null);
|
||||||
|
const { state } = useConstraintAccordionList(undefined, constraintsRef);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SegmentContainer conflict={change.conflict}>
|
<SegmentContainer conflict={change.conflict}>
|
||||||
@ -113,10 +123,18 @@ export const SegmentChangeDetails: FC<{
|
|||||||
</ChangeItemInfo>
|
</ChangeItemInfo>
|
||||||
<div>{actions}</div>
|
<div>{actions}</div>
|
||||||
</ChangeItemCreateEditWrapper>
|
</ChangeItemCreateEditWrapper>
|
||||||
|
{addEditStrategy ? (
|
||||||
|
<NewConstraintAccordionList
|
||||||
|
ref={constraintsRef}
|
||||||
|
constraints={change.payload.constraints}
|
||||||
|
state={state}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
<ConstraintAccordionList
|
<ConstraintAccordionList
|
||||||
constraints={change.payload.constraints}
|
constraints={change.payload.constraints}
|
||||||
showLabel={false}
|
showLabel={false}
|
||||||
/>
|
/>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</SegmentContainer>
|
</SegmentContainer>
|
||||||
|
@ -15,6 +15,7 @@ import { NewConstraintAccordion } from 'component/common/NewConstraintAccordion/
|
|||||||
import { ConstraintsList } from 'component/common/ConstraintsList/ConstraintsList';
|
import { ConstraintsList } from 'component/common/ConstraintsList/ConstraintsList';
|
||||||
import { useUiFlag } from 'hooks/useUiFlag';
|
import { useUiFlag } from 'hooks/useUiFlag';
|
||||||
import { EditableConstraintWrapper } from 'component/feature/FeatureStrategy/FeatureStrategyConstraints/EditableConstraintWrapper';
|
import { EditableConstraintWrapper } from 'component/feature/FeatureStrategy/FeatureStrategyConstraints/EditableConstraintWrapper';
|
||||||
|
import { ConstraintAccordionView } from 'component/common/NewConstraintAccordion/ConstraintAccordionView/ConstraintAccordionView';
|
||||||
|
|
||||||
export interface IConstraintAccordionListProps {
|
export interface IConstraintAccordionListProps {
|
||||||
constraints: IConstraint[];
|
constraints: IConstraint[];
|
||||||
@ -150,16 +151,25 @@ export const NewConstraintAccordionList = forwardRef<
|
|||||||
<ConstraintsList>
|
<ConstraintsList>
|
||||||
{constraints.map((constraint, index) =>
|
{constraints.map((constraint, index) =>
|
||||||
addEditStrategy ? (
|
addEditStrategy ? (
|
||||||
|
state.get(constraint)?.editing ? (
|
||||||
<EditableConstraintWrapper
|
<EditableConstraintWrapper
|
||||||
key={constraint[constraintId]}
|
key={constraint[constraintId]}
|
||||||
constraint={constraint}
|
constraint={constraint}
|
||||||
onCancel={onCancel.bind(null, index)}
|
onCancel={onCancel?.bind(null, index)}
|
||||||
onDelete={onRemove?.bind(null, index)}
|
onDelete={onRemove?.bind(null, index)}
|
||||||
onSave={onSave!.bind(null, index)}
|
onSave={onSave!.bind(null, index)}
|
||||||
onAutoSave={onAutoSave?.(
|
onAutoSave={onAutoSave?.(
|
||||||
constraint[constraintId],
|
constraint[constraintId],
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
) : (
|
||||||
|
<ConstraintAccordionView
|
||||||
|
key={constraint[constraintId]}
|
||||||
|
constraint={constraint}
|
||||||
|
onEdit={onEdit?.bind(null, constraint)}
|
||||||
|
onDelete={onRemove?.bind(null, index)}
|
||||||
|
/>
|
||||||
|
)
|
||||||
) : (
|
) : (
|
||||||
<NewConstraintAccordion
|
<NewConstraintAccordion
|
||||||
key={constraint[constraintId]}
|
key={constraint[constraintId]}
|
||||||
|
Loading…
Reference in New Issue
Block a user