😽

【NextJs + BetterAuth + Polar】Subcription サブスクサービスの実装【#11 Polar hooks】

に公開

【#11 Polar hooks】
YouTube: https://youtu.be/cURYinGx2Gs
https://youtu.be/cURYinGx2Gs

今回は、サブスクリプションの状態を取得するhooksを作成します。

https://polar.sh/docs/api-reference/customers/state

hooks/use-active-subscription.ts
import { useQuery } from "@tanstack/react-query";

import { authClient } from "@/lib/auth-client";

export const getSubscription = () => {
  return useQuery({
    queryKey: ["subscription"],
    queryFn: async () => {
      const { data } = await authClient.customer.state();

      return data;
    },
  });
};

export const useActiveSubscription = () => {
  const { data, isLoading, ...rest } = getSubscription();

  const isActiveSubscription =
    data?.activeSubscriptions && data?.activeSubscriptions.length > 0;

  return {
    data,
    isActiveSubscription,
    isLoading,
    subscription: data?.activeSubscriptions?.[0],
    ...rest,
  };
};

Discussion