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', 'blocksy-companion')}
{
if (!isPro && !freeProviders.includes(copy)) {
setProvider(copy)
setTimeout(() => {
setProvider(freeProviders[0])
})
showNotice()
return
}
setProvider(copy)
}}
option={{
placeholder: __(
'Pick Mailing Service',
'blocksy-companion'
),
choices: [
{
key: 'mailchimp',
value: 'Mailchimp',
},
{
key: 'mailerlite',
value: 'Mailerlite',
},
{
key: 'brevo',
value: 'Brevo (Sendinblue)',
},
{
key: 'campaignmonitor',
value: 'Campaign Monitor',
},
{
key: 'convertkit',
value: 'ConvertKit',
},
{
key: 'demo',
value: 'Demo',
},
],
}}
value={
provider.indexOf('mailerlite') > -1
? 'mailerlite'
: provider
}
/>
{provider.indexOf('mailerlite') > -1 && (
{__('Version', 'blocksy-companion')}
{
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) && (
{__('List ID', 'blocksy-companion')}
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' && (
',
''
),
}}
/>
)}
attemptToSaveCredentials()}>
{isLoading
? __('Loading...', 'blocksy-companion')
: __('Save Settings', 'blocksy-companion')}
{content}
)
}
export default EditCredentials
Seamless Intubated Bags Archives - American Durafilm
FEP Seamless Intubated Bags
American Durafilm Co., Inc. fabricates all of our bags to custom specifications. This includes heat sealing FEP tubing into the bag, installing custom bulkhead fittings, and heat sealing larger fittings for the most demanding applications. With our advanced heat sealing and fabrication techniques we can install or design almost any…
Price start from: $ 8.07
Authorized Distributor Dupont