mobile: add null checks

This commit is contained in:
Ammar Ahmed
2025-10-05 01:11:09 +05:00
parent 0a0aa09eea
commit f40ccdae41
4 changed files with 22 additions and 20 deletions

View File

@@ -56,15 +56,16 @@ export default function PaywallSheet<Tid extends FeatureId>(props: {
const isSubscribedOnWeb =
(PremiumService.get() &&
pricingPlans.user?.subscription.provider ===
pricingPlans.user?.subscription?.provider ===
SubscriptionProvider.PADDLE) ||
pricingPlans.user?.subscription.provider ===
pricingPlans.user?.subscription?.provider ===
SubscriptionProvider.STREETWRITERS;
const isCurrentPlatform =
(pricingPlans.user?.subscription.provider === SubscriptionProvider.APPLE &&
(pricingPlans.user?.subscription?.provider === SubscriptionProvider.APPLE &&
Platform.OS === "ios") ||
(pricingPlans.user?.subscription.provider === SubscriptionProvider.GOOGLE &&
(pricingPlans.user?.subscription?.provider ===
SubscriptionProvider.GOOGLE &&
Platform.OS === "android");
return !pricingPlans.currentPlan ? null : (

View File

@@ -35,9 +35,9 @@ export function PlanLimits() {
}, []);
const isCurrentPlatform =
(user?.subscription.provider === SubscriptionProvider.APPLE &&
(user?.subscription?.provider === SubscriptionProvider.APPLE &&
Platform.OS === "ios") ||
(user?.subscription.provider === SubscriptionProvider.GOOGLE &&
(user?.subscription?.provider === SubscriptionProvider.GOOGLE &&
Platform.OS === "android");
return (
@@ -84,8 +84,8 @@ export function PlanLimits() {
</View>
))}
{(user?.subscription.provider === SubscriptionProvider.PADDLE ||
user?.subscription.provider === SubscriptionProvider.STREETWRITERS ||
{(user?.subscription?.provider === SubscriptionProvider.PADDLE ||
user?.subscription?.provider === SubscriptionProvider.STREETWRITERS ||
!isCurrentPlatform) &&
PremiumService.get() ? null : (
<Button

View File

@@ -100,9 +100,9 @@ export const settingsGroups: SettingSection[] = [
strings.subscriptionProviderInfo[user?.subscription?.provider];
const isCurrentPlatform =
(user.subscription.provider === SubscriptionProvider.APPLE &&
(user.subscription?.provider === SubscriptionProvider.APPLE &&
Platform.OS === "ios") ||
(user.subscription.provider === SubscriptionProvider.GOOGLE &&
(user.subscription?.provider === SubscriptionProvider.GOOGLE &&
Platform.OS === "android");
if (
@@ -132,8 +132,8 @@ export const settingsGroups: SettingSection[] = [
"dddd, MMMM D, YYYY h:mm A"
);
if (user.subscription.plan !== SubscriptionPlan.FREE) {
const status = user.subscription.status;
if (user.subscription?.plan !== SubscriptionPlan.FREE) {
const status = user.subscription?.status;
return status === SubscriptionStatus.TRIAL
? strings.trialEndsOn(
dayjs(user?.subscription?.start)

View File

@@ -133,9 +133,9 @@ const SettingsUserSection = ({ item }) => {
const total = user?.totalStorage || 0;
const isCurrentPlatform =
(user?.subscription.provider === SubscriptionProvider.APPLE &&
(user?.subscription?.provider === SubscriptionProvider.APPLE &&
Platform.OS === "ios") ||
(user?.subscription.provider === SubscriptionProvider.GOOGLE &&
(user?.subscription?.provider === SubscriptionProvider.GOOGLE &&
Platform.OS === "android");
return (
@@ -328,7 +328,7 @@ const SettingsUserSection = ({ item }) => {
}}
>
<Paragraph size={AppFontSize.sm}>
{planToDisplayName(user.subscription.plan)}
{planToDisplayName(user.subscription?.plan)}
</Paragraph>
<Paragraph
color={colors.secondary.paragraph}
@@ -339,14 +339,14 @@ const SettingsUserSection = ({ item }) => {
</Paragraph>
</TouchableOpacity>
{(user.subscription.provider === SubscriptionProvider.PADDLE ||
user.subscription.provider ===
{(user.subscription?.provider === SubscriptionProvider.PADDLE ||
user.subscription?.provider ===
SubscriptionProvider.STREETWRITERS ||
!isCurrentPlatform) &&
PremiumService.get() ? null : (
<Button
title={
user.subscription.plan !== SubscriptionPlan.FREE
user.subscription?.plan !== SubscriptionPlan.FREE
? strings.changePlan()
: strings.upgradePlan()
}
@@ -362,8 +362,9 @@ const SettingsUserSection = ({ item }) => {
}
if (
user.subscription.plan !== SubscriptionPlan.FREE &&
user.subscription.productId.includes("5year")
user.subscription?.plan !== SubscriptionPlan.FREE &&
user.subscription?.productId &&
user.subscription?.productId.includes("5year")
) {
ToastManager.show({
message: