import { createElement, Component, useState } from '@wordpress/element' import { __, sprintf } from 'ct-i18n' const SinglePremiumPlugin = ({ status, plugin, onPluginsSync }) => { const [isLoading, setIsLoading] = useState(false) const makeAction = async (plugin, actionName) => { const body = new FormData() body.append('plugin', plugin) body.append('action', actionName) setIsLoading(true) try { await fetch(ctDashboardLocalizations.ajax_url, { method: 'POST', body, }) onPluginsSync() } catch (e) {} setIsLoading(false) } return (
  • {plugin.title} {isLoading && ( )}

    {plugin.description && (
    {plugin.description}
    )}
    {status === 'activated' && ( makeAction(plugin.name, 'premium_plugin_deactivate') } className="ct-button"> {__('Deactivate', 'blocksy')} )} {status === 'deactivated' && ( makeAction(plugin.name, 'premium_plugin_activate') } className="ct-button-primary"> {__('Activate', 'blocksy')} )} {status === 'uninstalled' && !plugin.comingsoon && plugin.type !== 'link' && ( makeAction( plugin.name, 'premium_plugin_download' ) } className="ct-button"> {__('Install', 'blocksy')} )} {status === 'uninstalled' && !plugin.comingsoon && plugin.type === 'link' && ( {__('Download', 'blocksy')} )} {status === 'uninstalled' && plugin.comingsoon && ( {__('COMING SOON', 'blocksy')} )}
  • ) } export default SinglePremiumPlugin