import {
createElement,
Component,
useEffect,
useState,
useMemo,
useReducer,
Fragment,
} from '@wordpress/element'
import classnames from 'classnames'
import { __, sprintf } from 'ct-i18n'
import ListPicker from './ListPicker'
import Overlay from '../../../../../static/js/helpers/Overlay'
import { Select } from 'blocksy-options'
import useProExtensionInFree from '../../../../../static/js/dashboard/helpers/useProExtensionInFree'
const freeProviders = ['mailchimp', 'demo']
const EditCredentials = ({ extension, onCredentialsValidated }) => {
const [provider, setProvider] = useState(extension.data.provider)
const [apiKey, setApiKey] = useState(extension.data.api_key)
const [listId, setListId] = useState(extension.data.list_id)
const [isLoading, setIsLoading] = useState(false)
const { isPro, showNotice, content } = useProExtensionInFree(extension, {
strategy: 'pro',
})
useEffect(() => {
if (
extension.data &&
!freeProviders.includes(extension.data.provider) &&
!isPro
) {
setProvider(freeProviders[0])
}
}, [])
const attemptToSaveCredentials = async () => {
const body = new FormData()
body.append('provider', provider)
body.append('api_key', apiKey)
body.append('list_id', listId)
body.append(
'action',
'blocksy_ext_newsletter_subscribe_maybe_save_credentials'
)
setIsLoading(true)
try {
const response = await fetch(ctDashboardLocalizations.ajax_url, {
method: 'POST',
body,
})
if (response.status === 200) {
const body = await response.json()
if (body.success) {
if (body.data.result !== 'api_key_invalid') {
onCredentialsValidated()
}
}
}
} catch (e) {}
await new Promise((r) => setTimeout(() => r(), 1000))
setIsLoading(false)
}
return (
{__('Connect Newsletter Provider', 'blocksy-companion')}
-1 ? 4 : 3}>
{provider.indexOf('mailerlite') > -1 && (
)}
{(freeProviders.includes(provider) ||
ctDashboardLocalizations.plugin_data.is_pro) && (
setListId(id)}
provider={provider}
apiKey={apiKey}
/>
)}
{provider === 'mailchimp' && (
',
''
),
}}
/>
)}
{ctDashboardLocalizations.plugin_data.is_pro &&
provider.indexOf('mailerlite') > -1 && (
',
'',
'',
''
),
}}
/>
)}
{provider.indexOf('demo') > -1 && (
)}
{ctDashboardLocalizations.plugin_data.is_pro &&
provider === 'brevo' && (
',
''
),
}}
/>
)}
{ctDashboardLocalizations.plugin_data.is_pro &&
provider === 'convertkit' && (
',
''
),
}}
/>
)}
{ctDashboardLocalizations.plugin_data.is_pro &&
provider === 'campaignmonitor' && (
',
''
),
}}
/>
)}
{content}
)
}
export default EditCredentials
My account - American Durafilm
Buy High Performance Materials Online
The nation’s largest stocking distributor of high performance materials. Order now for Kapton®, Tedlar®, FEP, PFA, and ETFE films.