Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion frontend-dev/src/Utils/StaticData/webhookIntegrations.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ export const customFormIntegrations = [
'Bricks',
'Bricksforge',
'Brizy',
'GutenaForms'
'GutenaForms',
'PieForms',
]

export const actionHookIntegrations = ['ActionHook']
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ function ConvertKit({ formFields, setFlow, flow, allIntegURL }) {
api_secret:
process.env.NODE_ENV === 'development' ? 'm4iHyMa_gu65b16dJMnYJJzOlSFpj3wl1pB3k_IvOhc' : '',
field_map: [{ formField: '', convertKitField: '' }],
actions: {}
actions: {},
module: '',
})

const nextPage = (val) => {
Expand All @@ -40,15 +41,24 @@ function ConvertKit({ formFields, setFlow, flow, allIntegURL }) {
})
return
}
if (!convertKitConf?.formId) {
if (!convertKitConf?.module) {
setSnackbar({ show: true, msg: __('Please select module to continue.', 'bit-integrations') })
return
}
if (convertKitConf?.module === 'add_subscriber_to_a_form' && !convertKitConf?.formId) {
setSnackbar({ show: true, msg: __('Please select form to continue.', 'bit-integrations') })
return
}
if ((convertKitConf?.module === 'add_tags_to_a_subscriber' || convertKitConf?.module === 'remove_tags_to_a_subscriber') && !convertKitConf?.tagIds) {
setSnackbar({ show: true, msg: __('Please select tag continue.', 'bit-integrations') })
return
}
if (convertKitConf.name !== '' && convertKitConf.field_map.length > 0) {
setstep(3)
}
}
}

return (
<div>
<SnackMsg snack={snack} setSnackbar={setSnackbar} />
Expand Down Expand Up @@ -82,7 +92,7 @@ function ConvertKit({ formFields, setFlow, flow, allIntegURL }) {
/>
<button
onClick={() => nextPage(3)}
disabled={!convertKitConf?.formId || convertKitConf.field_map.length < 1}
disabled={!checkMappedFields(convertKitConf)}
className="btn f-right btcd-btn-lg purple sh-sm flx"
type="button">
{__('Next', 'bit-integrations')} &nbsp;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,19 @@ export default function ConvertKitActions({ convertKitConf, setConvertKitConf })

return (
<div className="pos-rel d-flx w-8">
<TableCheckBox
checked={convertKitConf.actions?.update || false}
onChange={(e) => actionHandler(e, 'update')}
className="wdt-200 mt-4 mr-2"
value="user_share"
title={sprintf(__('Update %s', 'bit-integrations'), 'Kit(ConvertKit)')}
subTitle={sprintf(
__('Update Responses with %s existing email?', 'bit-integrations'),
'Kit(ConvertKit)'
)}
/>
{(!convertKitConf?.module || convertKitConf?.module === 'add_subscriber_to_a_form') &&
<TableCheckBox
checked={convertKitConf.actions?.update || false}
onChange={(e) => actionHandler(e, 'update')}
className="wdt-200 mt-4 mr-2"
value="user_share"
title={sprintf(__('Update %s', 'bit-integrations'), 'Kit(ConvertKit)')}
subTitle={sprintf(
__('Update Responses with %s existing email?', 'bit-integrations'),
'Kit(ConvertKit)'
)}
/>
}
</div>
)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// eslint-disable-next-line import/no-extraneous-dependencies
import { __ } from '../../../Utils/i18nwrap'
import bitsFetch from '../../../Utils/bitsFetch'
import { create } from 'mutative'

export const handleInput = (e, convertKitConf, setConvertKitConf) => {
const newConf = { ...convertKitConf }
Expand All @@ -20,12 +21,16 @@ export const refreshConvertKitForm = (
bitsFetch(refreshFormsRequestParams, 'convertKit_forms')
.then((result) => {
if (result && result.success) {
const newConf = { ...convertKitConf }
if (result.data.convertKitForms) {
if (!newConf.default) {
newConf.default = {}
}
newConf.default.convertKitForms = result.data.convertKitForms
setConvertKitConf(prevConf => create(prevConf, draftConf => {
if (!draftConf.default) {
draftConf.default = {}
}

draftConf.default.convertKitForms = result.data.convertKitForms
}))
refreshConvertKitTags(convertKitConf, setConvertKitConf, setIsLoading, setSnackbar)

setSnackbar({
show: true,
msg: __('Convert Kit forms refreshed', 'bit-integrations')
Expand All @@ -39,8 +44,6 @@ export const refreshConvertKitForm = (
)
})
}

setConvertKitConf({ ...newConf })
} else {
setSnackbar({
show: true,
Expand All @@ -67,12 +70,15 @@ export const refreshConvertKitTags = (
bitsFetch(refreshFormsRequestParams, 'convertKit_tags')
.then((result) => {
if (result && result.success) {
const newConf = { ...convertKitConf }
if (result.data.convertKitTags) {
if (!newConf.default) {
newConf.default = {}
}
newConf.default.convertKitTags = result.data.convertKitTags
setConvertKitConf(prevConf => create(prevConf, draftConf => {
if (!draftConf.default) {
draftConf.default = {}
}

draftConf.default.convertKitTags = result.data.convertKitTags
}))

setSnackbar({
show: true,
msg: sprintf(__('%s tags refreshed', 'bit-integrations'), 'Kit(ConvertKit)')
Expand All @@ -90,7 +96,6 @@ export const refreshConvertKitTags = (
})
}

setConvertKitConf({ ...newConf })
} else {
setSnackbar({
show: true,
Expand All @@ -111,64 +116,86 @@ export const refreshConvertKitHeader = (
setIsLoading,
setSnackbar
) => {
const refreshFormsRequestParams = {
api_secret: convertKitConf.api_secret
}
bitsFetch(refreshFormsRequestParams, 'convertKit_headers')
.then((result) => {
if (result && result.success) {
const newConf = { ...convertKitConf }
if (result.data.convertKitField) {
if (!newConf.default) {
newConf.default = {}
}
newConf.default.fields = result.data.convertKitField
const { fields } = newConf.default
newConf.field_map = Object.values(fields)
.filter((f) => f.required)
.map((f) => ({
formField: '',
convertKitField: f.fieldId,
required: true
if (convertKitConf?.module === 'add_tags_to_a_subscriber' || convertKitConf?.module === 'remove_tags_to_a_subscriber') {
setConvertKitConf(prevConf => create(prevConf, draftConf => {
if (!draftConf.default) {
draftConf.default = {}
}

draftConf.default.fields = { 'Email': { 'fieldId': 'email', 'fieldName': 'Email', 'required': true } }
draftConf.field_map = [{
formField: '',
convertKitField: 'email',
required: true
}]
}))

setSnackbar({
show: true,
msg: sprintf(__('%s fields refreshed', 'bit-integrations'), 'Kit(ConvertKit)')
})
} else {
const refreshFormsRequestParams = {
api_secret: convertKitConf.api_secret
}

bitsFetch(refreshFormsRequestParams, 'convertKit_headers')
.then((result) => {
if (result && result.success) {
if (result.data.convertKitField) {
setConvertKitConf(prevConf => create(prevConf, draftConf => {
if (!draftConf.default) {
draftConf.default = {}
}
draftConf.default.fields = result.data.convertKitField
const { fields } = draftConf.default
draftConf.field_map = Object.values(fields)
.filter((f) => f.required)
.map((f) => ({
formField: '',
convertKitField: f.fieldId,
required: true
}))

}))
setSnackbar({
show: true,
msg: sprintf(__('%s fields refreshed', 'bit-integrations'), 'Kit(ConvertKit)')
})

setSnackbar({
show: true,
msg: sprintf(__('%s fields refreshed', 'bit-integrations'), 'Kit(ConvertKit)')
})
} else {
setSnackbar({
show: true,
msg: sprintf(
__(
'No %s fields found. Try changing the header row number or try again',
'bit-integrations'
),
'Kit(ConvertKit)'
)
})
}
} else {
setSnackbar({
show: true,
msg: sprintf(
__(
'No %s fields found. Try changing the header row number or try again',
'bit-integrations'
),
__('%s fields refresh failed. please try again', 'bit-integrations'),
'Kit(ConvertKit)'
)
})
}

setConvertKitConf({ ...newConf })
} else {
setSnackbar({
show: true,
msg: sprintf(
__('%s fields refresh failed. please try again', 'bit-integrations'),
'Kit(ConvertKit)'
)
})
}
setIsLoading(false)
})
.catch(() => setIsLoading(false))
setIsLoading(false)
})
.catch(() => setIsLoading(false))
}
}

export const checkMappedFields = (convertKitConf) => {
const mappedFields = convertKitConf?.field_map
? convertKitConf.field_map.filter(
(mappedField) =>
!mappedField.formField && mappedField.convertKitField && mappedField.required
)
(mappedField) =>
!mappedField.formField && mappedField.convertKitField && mappedField.required
)
: []
if (mappedFields.length > 0) {
return false
Expand Down
Loading