@@ -109,7 +109,7 @@ interface QueryBuilderContextInterface {
109
109
checkIfOperatorRequiresValueField : ( operator : Comparator ) => boolean ;
110
110
validateValueByType : ( valueType : MetadataType , value : string , comparator : Comparator ) => boolean ;
111
111
isDisplayableInSimpleMode : boolean ;
112
- onToggleQueryMode : ( isCompoundModeOn : boolean ) => void ;
112
+ onToggleQueryMode : ( ) => void ;
113
113
}
114
114
115
115
export const QueryBuilderContext = createContext < QueryBuilderContextInterface | undefined > (
@@ -127,19 +127,15 @@ export const useQueryBuilderContext = () => {
127
127
export const QueryBuilderProvider = ( {
128
128
children,
129
129
queryInput,
130
- metadataFields,
131
- forceCompoundMode = false ,
130
+ metadataFields,
132
131
validateValueByType,
133
132
onChange,
134
- onQueryBuilderModeToggle
135
133
} : {
136
134
children : ReactNode ;
137
135
queryInput : QueryInput ;
138
136
metadataFields : MetadataFieldProps [ ] ; // need to take into consideration the select and the alias
139
- forceCompoundMode ?: boolean ;
140
137
validateValueByType : ( valueType : MetadataType , value : string , comparator : Comparator ) => boolean ;
141
138
onChange : ( query : QueryInput ) => void ;
142
- onQueryBuilderModeToggle : ( isCompoundModeOn : boolean ) => void ;
143
139
} ) => {
144
140
const getInitialQuery = useCallback ( ( ) => {
145
141
let condition : AndOrMetadataInput | undefined = undefined ;
@@ -171,54 +167,39 @@ export const QueryBuilderProvider = ({
171
167
return true ;
172
168
} ;
173
169
174
- const checkIfSimpleMode = useCallback (
175
- ( query : AndOrMetadataInput | undefined ) => {
176
- return ! forceCompoundMode && checkIfConditionIsDisplayableInSimpleMode ( query ) ;
177
- } ,
178
- [ forceCompoundMode ]
179
- ) ;
180
-
181
170
const [ rootCondition , setRootCondition ] = useState < AndOrMetadataInput > ( ( ) => getInitialQuery ( ) ) ;
182
- const [ isSimpleMode , setIsSimpleMode ] = useState < boolean > ( ( ) =>
183
- checkIfSimpleMode ( queryInput . query )
184
- ) ;
185
- const [ metadataFieldsList , setMetadataFieldsList ] =
186
- useState < MetadataFieldProps [ ] > ( metadataFields ) ;
187
171
const [ isDisplayableInSimpleMode , setIsDisplayableInSimpleMode ] = useState < boolean > (
188
172
checkIfConditionIsDisplayableInSimpleMode ( queryInput . query )
189
173
) ;
190
- const [ isCompoundModeForced , setIsCompoundModeForced ] = useState < boolean > ( forceCompoundMode ) ;
191
-
192
- useEffect ( ( ) => {
193
- setIsCompoundModeForced ( forceCompoundMode ) ;
194
- } , [ forceCompoundMode ] ) ;
174
+ const [ isCompoundModeForced , setIsCompoundModeForced ] = useState < boolean > ( false ) ;
175
+ const [ isSimpleMode , setIsSimpleMode ] = useState < boolean > ( ( ) =>
176
+ isDisplayableInSimpleMode && ! isCompoundModeForced
177
+ ) ;
195
178
196
179
useEffect ( ( ) => {
197
180
if (
198
181
JSON . stringify ( removeIdFields ( getInitialQuery ( ) ) ) !==
199
182
JSON . stringify ( removeIdFields ( rootCondition ) )
200
183
) {
201
184
setRootCondition ( getInitialQuery ) ;
185
+ setIsDisplayableInSimpleMode ( checkIfConditionIsDisplayableInSimpleMode ( queryInput . query ) ) ;
202
186
}
203
- setIsDisplayableInSimpleMode ( checkIfConditionIsDisplayableInSimpleMode ( queryInput . query ) ) ;
204
187
} , [ queryInput . query ] ) ;
205
188
206
189
useEffect ( ( ) => {
207
190
setIsDisplayableInSimpleMode ( checkIfConditionIsDisplayableInSimpleMode ( rootCondition ) ) ;
208
191
} , [ rootCondition ] ) ;
209
192
210
- useEffect ( ( ) => {
211
- setIsSimpleMode ( checkIfSimpleMode ( queryInput . query ) ) ;
212
- } , [ forceCompoundMode , queryInput . query ] ) ;
213
-
214
193
function onToggleQueryMode ( ) {
215
194
setIsCompoundModeForced ( ! isCompoundModeForced ) ;
216
- onQueryBuilderModeToggle ( ! isCompoundModeForced ) ;
217
195
}
218
196
219
197
useEffect ( ( ) => {
220
- setMetadataFieldsList ( metadataFields ) ;
221
- } , [ metadataFields ] ) ;
198
+ console . log ( "set is simple mode" , isDisplayableInSimpleMode && ! isCompoundModeForced ) ;
199
+ console . log ( "is compound mode forced" , isCompoundModeForced ) ;
200
+ console . log ( "is displayable in simple mode" , isDisplayableInSimpleMode ) ;
201
+ setIsSimpleMode ( isDisplayableInSimpleMode && ! isCompoundModeForced ) ;
202
+ } , [ isCompoundModeForced , isDisplayableInSimpleMode ] ) ;
222
203
223
204
//This function is used to remove the root and wrapper, if it was added for ui purposes and not needed anymore
224
205
const removeRootAndBlockIfWasAddedAndNotNeeded = ( condition : AndOrMetadataInput | null ) => {
@@ -439,7 +420,7 @@ export const QueryBuilderProvider = ({
439
420
setIsSimpleMode,
440
421
rootCondition,
441
422
setRootCondition,
442
- metadataFieldsList,
423
+ metadataFieldsList : metadataFields ,
443
424
generateUniqueId,
444
425
addUniqueIds,
445
426
getOperatorsByMetadataType,
0 commit comments