@pixygon/subscription
v1.2.0
Published
Pixygon+ subscription management — shared across all Pixygon apps
Readme
@pixygon/subscription
Pixygon+ subscription management — tier detection, Stripe checkout, feature gates.
Install
npm install @pixygon/subscriptionSetup
import { SubscriptionProvider } from '@pixygon/subscription'
<SubscriptionProvider
config={{ features: APP_FEATURES }}
accessToken={accessToken}
userTier={user.subscriptionTier}
>
<App />
</SubscriptionProvider>Define features per tier:
const APP_FEATURES = {
appId: 'kartograf',
features: {
customPins: { free: 3, plus: -1, family: -1 }, // -1 = unlimited
premiumThemes: { free: false, plus: true, family: true },
boostCooldown: { free: false, plus: true, family: true },
},
}Hooks
useSubscription()
const { tier, isPlus, canUse, getLimit, startCheckout, openPortal, cancelSubscription } = useSubscription()
if (canUse('premiumThemes')) { /* show premium themes */ }
const pinLimit = getLimit('customPins') // 3 for free, -1 for plusComponents
import { PixygonPlusPage } from '@pixygon/subscription/pages'
import { FeatureGate, UpgradePrompt, SubscriptionBadge } from '@pixygon/subscription'
// Full pricing page
<Route path="/plus" element={<PixygonPlusPage currentApp="kartograf" />} />
// Gate a feature
<FeatureGate feature="premiumThemes" fallback={<UpgradePrompt />}>
<PremiumThemeSelector />
</FeatureGate>