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}>
{ setProvider( copy === 'new' ? 'mailerlite-new' : 'mailerlite' ) }} option={{ placeholder: __( 'Pick Mailing Service', 'blocksy-companion' ), choices: [ { key: 'classic', value: 'Classic', }, { key: 'new', value: 'New', }, ], }} value={ provider === 'mailerlite-new' ? 'new' : 'classic' } />
)} {(freeProviders.includes(provider) || ctDashboardLocalizations.plugin_data.is_pro) && (
setApiKey(value) } value={apiKey || ''} />
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