11// eslint-disable-next-line import/no-extraneous-dependencies
22import { __ } from '../../../Utils/i18nwrap'
33import bitsFetch from '../../../Utils/bitsFetch'
4+ import { create } from 'mutative'
45
56export const handleInput = ( e , convertKitConf , setConvertKitConf ) => {
67 const newConf = { ...convertKitConf }
@@ -20,12 +21,16 @@ export const refreshConvertKitForm = (
2021 bitsFetch ( refreshFormsRequestParams , 'convertKit_forms' )
2122 . then ( ( result ) => {
2223 if ( result && result . success ) {
23- const newConf = { ...convertKitConf }
2424 if ( result . data . convertKitForms ) {
25- if ( ! newConf . default ) {
26- newConf . default = { }
27- }
28- newConf . default . convertKitForms = result . data . convertKitForms
25+ setConvertKitConf ( prevConf => create ( prevConf , draftConf => {
26+ if ( ! draftConf . default ) {
27+ draftConf . default = { }
28+ }
29+
30+ draftConf . default . convertKitForms = result . data . convertKitForms
31+ } ) )
32+ refreshConvertKitTags ( convertKitConf , setConvertKitConf , setIsLoading , setSnackbar )
33+
2934 setSnackbar ( {
3035 show : true ,
3136 msg : __ ( 'Convert Kit forms refreshed' , 'bit-integrations' )
@@ -39,8 +44,6 @@ export const refreshConvertKitForm = (
3944 )
4045 } )
4146 }
42-
43- setConvertKitConf ( { ...newConf } )
4447 } else {
4548 setSnackbar ( {
4649 show : true ,
@@ -67,12 +70,15 @@ export const refreshConvertKitTags = (
6770 bitsFetch ( refreshFormsRequestParams , 'convertKit_tags' )
6871 . then ( ( result ) => {
6972 if ( result && result . success ) {
70- const newConf = { ...convertKitConf }
7173 if ( result . data . convertKitTags ) {
72- if ( ! newConf . default ) {
73- newConf . default = { }
74- }
75- newConf . default . convertKitTags = result . data . convertKitTags
74+ setConvertKitConf ( prevConf => create ( prevConf , draftConf => {
75+ if ( ! draftConf . default ) {
76+ draftConf . default = { }
77+ }
78+
79+ draftConf . default . convertKitTags = result . data . convertKitTags
80+ } ) )
81+
7682 setSnackbar ( {
7783 show : true ,
7884 msg : sprintf ( __ ( '%s tags refreshed' , 'bit-integrations' ) , 'Kit(ConvertKit)' )
@@ -90,7 +96,6 @@ export const refreshConvertKitTags = (
9096 } )
9197 }
9298
93- setConvertKitConf ( { ...newConf } )
9499 } else {
95100 setSnackbar ( {
96101 show : true ,
@@ -111,64 +116,86 @@ export const refreshConvertKitHeader = (
111116 setIsLoading ,
112117 setSnackbar
113118) => {
114- const refreshFormsRequestParams = {
115- api_secret : convertKitConf . api_secret
116- }
117- bitsFetch ( refreshFormsRequestParams , 'convertKit_headers' )
118- . then ( ( result ) => {
119- if ( result && result . success ) {
120- const newConf = { ...convertKitConf }
121- if ( result . data . convertKitField ) {
122- if ( ! newConf . default ) {
123- newConf . default = { }
124- }
125- newConf . default . fields = result . data . convertKitField
126- const { fields } = newConf . default
127- newConf . field_map = Object . values ( fields )
128- . filter ( ( f ) => f . required )
129- . map ( ( f ) => ( {
130- formField : '' ,
131- convertKitField : f . fieldId ,
132- required : true
119+ if ( convertKitConf ?. module === 'add_tags_to_a_subscriber' || convertKitConf ?. module === 'remove_tags_to_a_subscriber' ) {
120+ setConvertKitConf ( prevConf => create ( prevConf , draftConf => {
121+ if ( ! draftConf . default ) {
122+ draftConf . default = { }
123+ }
124+
125+ draftConf . default . fields = { 'Email' : { 'fieldId' : 'email' , 'fieldName' : 'Email' , 'required' : true } }
126+ draftConf . field_map = [ {
127+ formField : '' ,
128+ convertKitField : 'email' ,
129+ required : true
130+ } ]
131+ } ) )
132+
133+ setSnackbar ( {
134+ show : true ,
135+ msg : sprintf ( __ ( '%s fields refreshed' , 'bit-integrations' ) , 'Kit(ConvertKit)' )
136+ } )
137+ } else {
138+ const refreshFormsRequestParams = {
139+ api_secret : convertKitConf . api_secret
140+ }
141+
142+ bitsFetch ( refreshFormsRequestParams , 'convertKit_headers' )
143+ . then ( ( result ) => {
144+ if ( result && result . success ) {
145+ if ( result . data . convertKitField ) {
146+ setConvertKitConf ( prevConf => create ( prevConf , draftConf => {
147+ if ( ! draftConf . default ) {
148+ draftConf . default = { }
149+ }
150+ draftConf . default . fields = result . data . convertKitField
151+ const { fields } = draftConf . default
152+ draftConf . field_map = Object . values ( fields )
153+ . filter ( ( f ) => f . required )
154+ . map ( ( f ) => ( {
155+ formField : '' ,
156+ convertKitField : f . fieldId ,
157+ required : true
158+ } ) )
159+
133160 } ) )
134- setSnackbar ( {
135- show : true ,
136- msg : sprintf ( __ ( '%s fields refreshed' , 'bit-integrations' ) , 'Kit(ConvertKit)' )
137- } )
161+
162+ setSnackbar ( {
163+ show : true ,
164+ msg : sprintf ( __ ( '%s fields refreshed' , 'bit-integrations' ) , 'Kit(ConvertKit)' )
165+ } )
166+ } else {
167+ setSnackbar ( {
168+ show : true ,
169+ msg : sprintf (
170+ __ (
171+ 'No %s fields found. Try changing the header row number or try again' ,
172+ 'bit-integrations'
173+ ) ,
174+ 'Kit(ConvertKit)'
175+ )
176+ } )
177+ }
138178 } else {
139179 setSnackbar ( {
140180 show : true ,
141181 msg : sprintf (
142- __ (
143- 'No %s fields found. Try changing the header row number or try again' ,
144- 'bit-integrations'
145- ) ,
182+ __ ( '%s fields refresh failed. please try again' , 'bit-integrations' ) ,
146183 'Kit(ConvertKit)'
147184 )
148185 } )
149186 }
150-
151- setConvertKitConf ( { ...newConf } )
152- } else {
153- setSnackbar ( {
154- show : true ,
155- msg : sprintf (
156- __ ( '%s fields refresh failed. please try again' , 'bit-integrations' ) ,
157- 'Kit(ConvertKit)'
158- )
159- } )
160- }
161- setIsLoading ( false )
162- } )
163- . catch ( ( ) => setIsLoading ( false ) )
187+ setIsLoading ( false )
188+ } )
189+ . catch ( ( ) => setIsLoading ( false ) )
190+ }
164191}
165192
166193export const checkMappedFields = ( convertKitConf ) => {
167194 const mappedFields = convertKitConf ?. field_map
168195 ? convertKitConf . field_map . filter (
169- ( mappedField ) =>
170- ! mappedField . formField && mappedField . convertKitField && mappedField . required
171- )
196+ ( mappedField ) =>
197+ ! mappedField . formField && mappedField . convertKitField && mappedField . required
198+ )
172199 : [ ]
173200 if ( mappedFields . length > 0 ) {
174201 return false
0 commit comments