useIsSubscriptionActive

The "useIsSubscriptionActive" custom hook allows you to get a boolean to check if the organization subscription is active or not.

The useIsSubscriptionActive hook is a custom hook that allows you to determine whether the current organization has an active paid subscription. This can be useful if you want to display a message to the user if they are on a paid subscription, or if you want to restrict access to certain pages.

A subscription is considered active if it's either active or trialing. The useIsSubscriptionActive hook will return true if the current organization is on any paid subscription, regardless of plan.

To use this hook, simply import it from the ~/lib/organizations/hooks/use-is-subscription-active module, and then call it from your component. Here's an example:

import type { Stripe } from 'stripe';
import { useCurrentOrganization } from '~/lib/organizations/hooks/use-current-organization';
const ACTIVE_STATUSES: Stripe.Subscription.Status[] = ['active', 'trialing'];
/**
* @name useIsSubscriptionActive
* @description Returns whether the organization is on any paid
* subscription, regardless of plan.
*/
function useIsSubscriptionActive() {
const organization = useCurrentOrganization();
const status = organization?.subscription?.status;
if (!status) {
return false;
}
return ACTIVE_STATUSES.includes(status);
}
export default useIsSubscriptionActive;

Then, we can use this hook in our component:

import { useIsSubscriptionActive } from '~/lib/organizations/hooks/use-is-subscription-active';
function MyComponent() {
const isSubscriptionActive = useIsSubscriptionActive();
if (isSubscriptionActive) {
return <p>You are on a paid subscription!</p>;
} else {
return <p>You are not on a paid subscription.</p>;
}
}

In this example, the useIsSubscriptionActive hook is used to determine whether the current organization is on a paid subscription. The resulting isSubscriptionActive value is then used to render a message to the user.

It's worth noting that the useIsSubscriptionActive hook can be customized to fit your needs. For example, you could modify the ACTIVE_STATUSES constant to include additional subscription statuses, or you could use a different method to retrieve the subscription status.