mobile: fix productId usage

This commit is contained in:
Ammar Ahmed
2025-12-10 10:11:21 +05:00
parent 7ada9cacda
commit 22b2d50139
7 changed files with 31 additions and 9 deletions

View File

@@ -992,7 +992,7 @@ const PricingPlanCard = ({
PremiumService.get() && PremiumService.get() &&
(pricingPlans?.user?.subscription?.productId === (pricingPlans?.user?.subscription?.productId ===
(product as RNIap.Subscription)?.productId || (product as RNIap.Subscription)?.productId ||
pricingPlans?.user?.subscription?.productId.startsWith( pricingPlans?.user?.subscription?.productId?.startsWith(
(product as RNIap.Subscription)?.productId (product as RNIap.Subscription)?.productId
)); ));
pricingPlans?.selectPlan( pricingPlans?.selectPlan(

View File

@@ -352,7 +352,7 @@ const ProductItem = (props: {
props.pricingPlans.isSubscribed() && props.pricingPlans.isSubscribed() &&
(props.pricingPlans.user?.subscription?.productId === (props.pricingPlans.user?.subscription?.productId ===
(product as RNIap.Subscription)?.productId || (product as RNIap.Subscription)?.productId ||
props.pricingPlans.user?.subscription?.productId.startsWith( props.pricingPlans.user?.subscription?.productId?.startsWith(
(product as RNIap.Subscription)?.productId (product as RNIap.Subscription)?.productId
) || ) ||
props.pricingPlans.user?.subscription?.productId === props.pricingPlans.user?.subscription?.productId ===

View File

@@ -103,7 +103,7 @@ export function PlanLimits() {
if ( if (
user?.subscription.plan !== SubscriptionPlan.FREE && user?.subscription.plan !== SubscriptionPlan.FREE &&
user?.subscription.productId.includes("5year") user?.subscription.productId?.includes("5year")
) { ) {
ToastManager.show({ ToastManager.show({
message: message:

View File

@@ -660,9 +660,25 @@ const usePricingPlans = (options?: PricingPlansOptions) => {
} }
} }
function isSubscribedToPlan(planId: string) {
if (!PremiumService.get()) return false;
return user?.subscription?.productId?.includes(planId);
}
function isSubscribedToProduct(productId: string) {
if (!PremiumService.get()) return false;
return (
user?.subscription?.productId &&
(user?.subscription?.productId === productId ||
user?.subscription?.productId?.startsWith(productId))
);
}
return { return {
currentPlan: pricingPlans.find((p) => p.id === currentPlan), currentPlan: pricingPlans.find((p) => p.id === currentPlan),
pricingPlans: plans, pricingPlans: plans,
isSubscribedToPlan,
isSubscribedToProduct,
getStandardPrice: getLocalizedPrice, getStandardPrice: getLocalizedPrice,
loadingPlans, loadingPlans,
loading, loading,

View File

@@ -118,7 +118,8 @@ export const settingsGroups: SettingSection[] = [
if ( if (
(user.subscription?.provider === SubscriptionProvider.GOOGLE || (user.subscription?.provider === SubscriptionProvider.GOOGLE ||
user.subscription?.provider === SubscriptionProvider.APPLE) && user.subscription?.provider === SubscriptionProvider.APPLE) &&
isCurrentPlatform isCurrentPlatform &&
user?.subscription?.productId
) { ) {
RNIap.deepLinkToSubscriptions({ RNIap.deepLinkToSubscriptions({
sku: user?.subscription.productId sku: user?.subscription.productId
@@ -142,13 +143,18 @@ export const settingsGroups: SettingSection[] = [
"dddd, MMMM D, YYYY h:mm A" "dddd, MMMM D, YYYY h:mm A"
); );
if (user.subscription?.plan !== SubscriptionPlan.FREE) { if (
user.subscription?.plan !== SubscriptionPlan.FREE &&
user.subscription?.productId
) {
const status = user.subscription?.status; const status = user.subscription?.status;
return status === SubscriptionStatus.TRIAL return status === SubscriptionStatus.TRIAL
? strings.trialEndsOn( ? strings.trialEndsOn(
dayjs(user?.subscription?.start) dayjs(user?.subscription?.start)
.add( .add(
user?.subscription?.productId.includes("monthly") ? 7 : 14 user?.subscription?.productId?.includes("monthly")
? 7
: 14
) )
.format("dddd, MMMM D, YYYY h:mm A") .format("dddd, MMMM D, YYYY h:mm A")
) )

View File

@@ -1,12 +1,12 @@
{ {
"name": "@notesnook/mobile", "name": "@notesnook/mobile",
"version": "3.3.7", "version": "3.3.9",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@notesnook/mobile", "name": "@notesnook/mobile",
"version": "3.3.7", "version": "3.3.9",
"hasInstallScript": true, "hasInstallScript": true,
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"workspaces": [ "workspaces": [

File diff suppressed because one or more lines are too long