Skip to content

Commit 4fbb39e

Browse files
authored
Merge pull request #9041 from streetwriters/fix-subscription-type
Fix subscription type
2 parents 08b0fd4 + 144febb commit 4fbb39e

File tree

10 files changed

+34
-12
lines changed

10 files changed

+34
-12
lines changed

apps/mobile/app/components/paywall/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,7 @@ const PricingPlanCard = ({
992992
PremiumService.get() &&
993993
(pricingPlans?.user?.subscription?.productId ===
994994
(product as RNIap.Subscription)?.productId ||
995-
pricingPlans?.user?.subscription?.productId.startsWith(
995+
pricingPlans?.user?.subscription?.productId?.startsWith(
996996
(product as RNIap.Subscription)?.productId
997997
));
998998
pricingPlans?.selectPlan(

apps/mobile/app/components/sheets/buy-plan/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ const ProductItem = (props: {
352352
props.pricingPlans.isSubscribed() &&
353353
(props.pricingPlans.user?.subscription?.productId ===
354354
(product as RNIap.Subscription)?.productId ||
355-
props.pricingPlans.user?.subscription?.productId.startsWith(
355+
props.pricingPlans.user?.subscription?.productId?.startsWith(
356356
(product as RNIap.Subscription)?.productId
357357
) ||
358358
props.pricingPlans.user?.subscription?.productId ===

apps/mobile/app/components/sheets/plan-limits/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export function PlanLimits() {
103103

104104
if (
105105
user?.subscription.plan !== SubscriptionPlan.FREE &&
106-
user?.subscription.productId.includes("5year")
106+
user?.subscription.productId?.includes("5year")
107107
) {
108108
ToastManager.show({
109109
message:

apps/mobile/app/hooks/use-pricing-plans.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,9 +660,25 @@ const usePricingPlans = (options?: PricingPlansOptions) => {
660660
}
661661
}
662662

663+
function isSubscribedToPlan(planId: string) {
664+
if (!PremiumService.get()) return false;
665+
return user?.subscription?.productId?.includes(planId);
666+
}
667+
668+
function isSubscribedToProduct(productId: string) {
669+
if (!PremiumService.get()) return false;
670+
return (
671+
user?.subscription?.productId &&
672+
(user?.subscription?.productId === productId ||
673+
user?.subscription?.productId?.startsWith(productId))
674+
);
675+
}
676+
663677
return {
664678
currentPlan: pricingPlans.find((p) => p.id === currentPlan),
665679
pricingPlans: plans,
680+
isSubscribedToPlan,
681+
isSubscribedToProduct,
666682
getStandardPrice: getLocalizedPrice,
667683
loadingPlans,
668684
loading,

apps/mobile/app/screens/settings/settings-data.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ export const settingsGroups: SettingSection[] = [
118118
if (
119119
(user.subscription?.provider === SubscriptionProvider.GOOGLE ||
120120
user.subscription?.provider === SubscriptionProvider.APPLE) &&
121-
isCurrentPlatform
121+
isCurrentPlatform &&
122+
user?.subscription?.productId
122123
) {
123124
RNIap.deepLinkToSubscriptions({
124125
sku: user?.subscription.productId
@@ -142,13 +143,18 @@ export const settingsGroups: SettingSection[] = [
142143
"dddd, MMMM D, YYYY h:mm A"
143144
);
144145

145-
if (user.subscription?.plan !== SubscriptionPlan.FREE) {
146+
if (
147+
user.subscription?.plan !== SubscriptionPlan.FREE &&
148+
user.subscription?.productId
149+
) {
146150
const status = user.subscription?.status;
147151
return status === SubscriptionStatus.TRIAL
148152
? strings.trialEndsOn(
149153
dayjs(user?.subscription?.start)
150154
.add(
151-
user?.subscription?.productId.includes("monthly") ? 7 : 14
155+
user?.subscription?.productId?.includes("monthly")
156+
? 7
157+
: 14
152158
)
153159
.format("dddd, MMMM D, YYYY h:mm A")
154160
)

apps/mobile/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/mobile/tsconfig.tsbuildinfo

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

apps/web/src/dialogs/buy-dialog/buy-dialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export const BuyDialog = DialogManager.register(function BuyDialog(
147147
</Text>
148148
</Flex>
149149
<PlansList
150-
selectedPlan={user?.subscription.productId}
150+
selectedPlan={user?.subscription?.productId}
151151
recommendedPlan={SubscriptionPlan.PRO}
152152
onPlanSelected={(plan) => selectPlan(plan)}
153153
/>

apps/web/src/dialogs/buy-dialog/plan-list.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import { useStore as useUserStore } from "../../stores/user-store";
4242
import { getCurrencySymbol } from "../../common/currencies";
4343

4444
type PlansListProps = {
45-
selectedPlan?: string;
45+
selectedPlan?: string | null;
4646
loadAllPlans?: boolean;
4747
ignoreTrial?: boolean;
4848
recommendedPlan?: SubscriptionPlan;

packages/core/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,7 @@ export type User = {
604604
cancelURL: string | null;
605605
expiry: number;
606606
trialExpiry?: number;
607-
productId: string;
607+
productId: string | null;
608608
provider: SubscriptionProvider;
609609
start: number;
610610
plan: SubscriptionPlan;

0 commit comments

Comments
 (0)