@@ -32,6 +32,11 @@ type ConditionModalProps = {
3232 documentId : string ;
3333} ;
3434
35+ type Subcondition = {
36+ subcondition_text : string ;
37+ subconditions ?: Subcondition [ ] ;
38+ } ;
39+
3540export const ConditionModal : FC < ConditionModalProps > = ( { open, onClose, projectId, documentId } ) => {
3641 const navigate = useNavigate ( ) ;
3742 const [ selectedDocumentId , setSelectedDocumentId ] = useState < string | "" > ( "" ) ;
@@ -50,6 +55,16 @@ export const ConditionModal: FC<ConditionModalProps> = ({ open, onClose, project
5055
5156 const { data : documentConditions , isPending : isConditionsLoading } = useGetConditions ( loadCondition , true , projectId , selectedDocumentId ) ;
5257
58+ const flattenSubconditions = (
59+ subconditions : Subcondition [ ] = [ ] ,
60+ level = 0
61+ ) : string [ ] => {
62+ return subconditions . flatMap ( sub => [
63+ `${ ' ' . repeat ( level ) } • ${ sub . subcondition_text } ` ,
64+ ...flattenSubconditions ( sub . subconditions ?? [ ] , level + 1 ) ,
65+ ] ) ;
66+ } ;
67+
5368 const handleCreateNewCondition = async ( conditionDetails ?: ConditionModel ) => {
5469 try {
5570 const response = await createCondition ( conditionDetails ) ;
@@ -175,9 +190,13 @@ export const ConditionModal: FC<ConditionModalProps> = ({ open, onClose, project
175190 < Box sx = { { marginTop : 0 } } >
176191 < Typography variant = "body1" marginBottom = { "2px" } > Condition Preview</ Typography >
177192 < TextField
178- value = { documentConditions . conditions
179- . find ( condition => condition . condition_id === selectedConditionId )
180- ?. subconditions ?. map ( subcondition => subcondition . subcondition_text ) . join ( ' ' ) || "" }
193+ value = {
194+ flattenSubconditions (
195+ documentConditions . conditions
196+ . find ( c => c . condition_id === selectedConditionId )
197+ ?. subconditions
198+ ) . join ( '\n' )
199+ }
181200 InputProps = { { readOnly : true } }
182201 fullWidth
183202 multiline
0 commit comments