supermemory/apps/web/hooks/use-memories-usage.ts
Prasanna721 11a0abd5c0 feat: migrate to api_pro billing and add credits-based usage display (#729)
Summary

  - Migrate from consumer_pro to api_pro billing product across the app
  - Enable Nova app for all users (remove feature flag)
  - Add credits-based usage tracking with tokens abstraction
2026-02-10 05:53:47 +00:00

35 lines
991 B
TypeScript

import { fetchMemoriesFeature, fetchSubscriptionStatus } from "@lib/queries"
import type { useCustomer } from "autumn-js/react"
export function useMemoriesUsage(autumn: ReturnType<typeof useCustomer>) {
const {
data: status = {
api_pro: { allowed: false, status: null },
},
isLoading: isCheckingStatus,
} = fetchSubscriptionStatus(autumn, !autumn.isLoading)
const proStatus = status.api_pro
const hasProProduct = proStatus?.status !== null
const { data: memoriesCheck, isLoading: isLoadingMemories } =
fetchMemoriesFeature(autumn, !isCheckingStatus && !autumn.isLoading)
const memoriesUsed = memoriesCheck?.usage ?? 0
const memoriesLimit = memoriesCheck?.included_usage ?? 0
const isLoading = autumn.isLoading || isCheckingStatus || isLoadingMemories
const usagePercent =
memoriesLimit <= 0
? 0
: Math.min(Math.max((memoriesUsed / memoriesLimit) * 100, 0), 100)
return {
memoriesUsed,
memoriesLimit,
hasProProduct,
isLoading,
usagePercent,
}
}