kollapsminoriteten/wp-content/plugins/blocksy-companion/static/js/dashboard/helpers/useProExtensionInFree.js

67 lines
1.5 KiB
JavaScript

import { useContext, createElement, useState } from '@wordpress/element'
import { __, sprintf } from 'ct-i18n'
import DashboardContext from '../DashboardContext'
import useUpsellModal from './useUpsellModal'
const getLowestPlan = () => {}
const useProExtensionInFree = (extension, args = {}) => {
args = {
// pro-ext | pro
strategy: 'pro-ext',
modalTitle: __('This is a Pro extension', 'blocksy-companion'),
...args,
}
const [isDisplayed, setIsDisplayed] = useState(false)
const isPro = ctDashboardLocalizations.plugin_data.is_pro
const { history } = useContext(DashboardContext)
const isProInFree = !isPro && extension.config.pro
const currentPlan = ctDashboardLocalizations.plugin_data.current_plan
let requiredPlan = 'personal'
if (extension.config.plans) {
if (extension.config.plans.includes('agency_v2')) {
requiredPlan = 'agency'
}
if (extension.config.plans.includes('professional_v2')) {
requiredPlan = 'professional'
}
}
const { content, showNotice } = useUpsellModal({
currentPlan,
requiredPlan,
...args,
})
return {
isPro,
isProInFree:
(!isPro && extension.config.pro) ||
(extension.config.plans &&
extension.config.plans.length &&
!extension.config.plans.includes(currentPlan)),
showNotice,
content:
(args.strategy === 'pro-ext' && isProInFree) ||
(args.strategy === 'pro' && !isPro) ||
(extension.config.plans &&
extension.config.plans.length &&
!extension.config.plans.includes(currentPlan))
? content
: null,
}
}
export default useProExtensionInFree