import { useMemo } from 'react'; import { useSettingsContext } from '../context/settings-context'; export const TYPE_CONNECT = 'connect'; export const TYPE_PROMOTION = 'promotion'; export const TYPE_APPLY = 'apply'; export default function useKitCallToAction( kitAccessLevel ) { const { settings } = useSettingsContext(); // SubscriptionPlan can be null when the context is not filled (can be happened when using back button in the browser.) const subscriptionPlan = useMemo( () => settings.subscription_plans?.[ kitAccessLevel ], [ settings, kitAccessLevel ] ); const type = useMemo( () => { // The user can apply this kit (the user access level is equal or greater then the kit access level). const isAuthorizeToApplyKit = settings.access_level >= kitAccessLevel; // The user in not connected and has pro plugin or the kit is a free kit. if ( ! settings.is_library_connected && ( settings.is_pro || isAuthorizeToApplyKit ) ) { return TYPE_CONNECT; } // The user is connected or has only core plugin and cannot access this kit. if ( ! isAuthorizeToApplyKit ) { return TYPE_PROMOTION; } // The user is connected and can access the kit. return TYPE_APPLY; }, [ settings, kitAccessLevel ] ); return [ type, { subscriptionPlan } ]; }