import { useCallback } from 'react';

import { useStores } from '@/app/(root)/AppProviders';
import { ModalTypes } from '@/components/modal/constants/ModalTypes';
import { FeatureKey, PlanFeature } from '@/state/sessionStore';
import { isFeatureEnabledForPlan } from '@/utils/session';

export type UpsellHook = () => () => boolean;

export const useStemUpsell: UpsellHook = () => {
  const { menus, session } = useStores();

  const upsell = useCallback(() => {
    if (!isFeatureEnabledForPlan(session, PlanFeature.GetStems)) {
      menus.setCurrentUpsellFeature(FeatureKey.STEMS);
      menus.openModal(ModalTypes.UPSELL_MODAL);
      return true;
    } else {
      return false;
    }
  }, [menus, session]);

  return upsell;
};
