55 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
66 */
77
8- import { useCallback } from 'react' ;
8+ import { useCallback , useMemo } from 'react' ;
99import { FieldValues , Resolver , useForm } from 'react-hook-form' ;
1010import { yupResolver } from '@hookform/resolvers/yup' ;
1111import { UUID } from 'crypto' ;
@@ -28,7 +28,6 @@ import { FILTER_EQUIPMENTS_ATTRIBUTES } from './explicitNaming/ExplicitNamingFil
2828const emptyFormData = {
2929 [ FieldConstants . NAME ] : '' ,
3030 [ FieldConstants . DESCRIPTION ] : '' ,
31- [ FieldConstants . FILTER_TYPE ] : FilterType . EXPERT . id ,
3231 [ FieldConstants . EQUIPMENT_TYPE ] : null ,
3332 ...getExplicitNamingFilterEmptyFormData ( ) ,
3433 ...getExpertFilterEmptyFormData ( ) ,
@@ -40,7 +39,6 @@ const formSchema = yup
4039 . shape ( {
4140 [ FieldConstants . NAME ] : yup . string ( ) . trim ( ) . required ( 'nameEmpty' ) ,
4241 [ FieldConstants . DESCRIPTION ] : yup . string ( ) . max ( MAX_CHAR_DESCRIPTION , 'descriptionLimitError' ) ,
43- [ FieldConstants . FILTER_TYPE ] : yup . string ( ) . required ( ) ,
4442 [ FieldConstants . EQUIPMENT_TYPE ] : yup . string ( ) . required ( ) ,
4543 ...explicitNamingFilterSchema ,
4644 ...expertFilterSchema ,
@@ -56,6 +54,7 @@ export interface FilterCreationDialogProps {
5654 id : UUID ;
5755 equipmentType : string ;
5856 } ;
57+ filterType : { id : string ; label : string } ;
5958}
6059
6160export function FilterCreationDialog ( {
@@ -64,6 +63,7 @@ export function FilterCreationDialog({
6463 activeDirectory,
6564 language,
6665 sourceFilterForExplicitNamingConversion = undefined ,
66+ filterType,
6767} : FilterCreationDialogProps ) {
6868 const { snackError } = useSnackMessage ( ) ;
6969
@@ -81,7 +81,7 @@ export function FilterCreationDialog({
8181
8282 const onSubmit = useCallback (
8383 ( filterForm : FieldValues ) => {
84- if ( filterForm [ FieldConstants . FILTER_TYPE ] === FilterType . EXPLICIT_NAMING . id ) {
84+ if ( filterType ?. id === FilterType . EXPLICIT_NAMING . id ) {
8585 saveExplicitNamingFilter (
8686 filterForm [ FILTER_EQUIPMENTS_ATTRIBUTES ] ,
8787 true ,
@@ -97,7 +97,7 @@ export function FilterCreationDialog({
9797 onClose ,
9898 activeDirectory
9999 ) ;
100- } else if ( filterForm [ FieldConstants . FILTER_TYPE ] === FilterType . EXPERT . id ) {
100+ } else if ( filterType ?. id === FilterType . EXPERT . id ) {
101101 saveExpertFilter (
102102 null ,
103103 filterForm [ EXPERT_FILTER_QUERY ] ,
@@ -115,17 +115,25 @@ export function FilterCreationDialog({
115115 ) ;
116116 }
117117 } ,
118- [ activeDirectory , snackError , onClose ]
118+ [ activeDirectory , snackError , onClose , filterType ]
119119 ) ;
120-
120+ const titleId = useMemo ( ( ) => {
121+ if ( sourceFilterForExplicitNamingConversion ) {
122+ return 'convertIntoExplicitNamingFilter' ;
123+ }
124+ if ( filterType ?. id === FilterType . EXPERT . id ) {
125+ return 'createNewCriteriaFilter' ;
126+ }
127+ return 'createNewExplicitNamingFilter' ;
128+ } , [ sourceFilterForExplicitNamingConversion , filterType ] ) ;
121129 return (
122130 < CustomMuiDialog
123131 open = { open }
124132 onClose = { onClose }
125133 onSave = { onSubmit }
126134 formSchema = { formSchema }
127135 formMethods = { formMethods }
128- titleId = { sourceFilterForExplicitNamingConversion ? 'convertIntoExplicitNamingFilter' : 'createNewFilter' }
136+ titleId = { titleId }
129137 removeOptional
130138 disabledSave = { ! ! nameError || ! ! isValidating }
131139 language = { language }
@@ -134,6 +142,7 @@ export function FilterCreationDialog({
134142 < FilterForm
135143 creation
136144 activeDirectory = { activeDirectory }
145+ filterType = { filterType }
137146 sourceFilterForExplicitNamingConversion = { sourceFilterForExplicitNamingConversion }
138147 />
139148 </ CustomMuiDialog >
0 commit comments