hide TryFreeButton if user had any subscription
This commit is contained in:
parent
d9e67bf4ba
commit
047a9b1956
@ -51,6 +51,14 @@ export async function getSubscriptionPrices(
|
||||
return wrapServerAction(() => service.getSubscriptionPrices(...variables));
|
||||
}
|
||||
|
||||
export async function getSubscriptions(
|
||||
...variables: Parameters<SubscriptionsService['getSubscriptions']>
|
||||
) {
|
||||
const service = await getService();
|
||||
|
||||
return wrapServerAction(() => service.getSubscriptions(...variables));
|
||||
}
|
||||
|
||||
export async function getSubscriptionSettings(
|
||||
...variables: Parameters<SubscriptionsService['getSubscriptionSettings']>
|
||||
) {
|
||||
|
||||
@ -2,6 +2,7 @@ import * as subscriptions from './server/subscriptions';
|
||||
import { wrapClientAction } from '@/utils/actions';
|
||||
|
||||
export const getSubscription = wrapClientAction(subscriptions.getSubscription);
|
||||
export const getSubscriptions = wrapClientAction(subscriptions.getSubscriptions);
|
||||
export const getSubscriptionSettings = wrapClientAction(subscriptions.getSubscriptionSettings);
|
||||
export const getSubscriptionPrices = wrapClientAction(subscriptions.getSubscriptionPrices);
|
||||
export const getSubscriptionHistory = wrapClientAction(subscriptions.getSubscriptionHistory);
|
||||
|
||||
@ -1,4 +1,8 @@
|
||||
import { getSubscription, getSubscriptionPrices } from '@/actions/api/subscriptions';
|
||||
import {
|
||||
getSubscription,
|
||||
getSubscriptionPrices,
|
||||
getSubscriptions,
|
||||
} from '@/actions/api/subscriptions';
|
||||
import { getSessionUser } from '@/actions/session';
|
||||
import { TryFreeButton } from '@/components/subscription';
|
||||
import { env } from '@/config/env';
|
||||
@ -10,11 +14,15 @@ import Link from 'next/link';
|
||||
|
||||
export default async function ProPage() {
|
||||
const { telegramId } = await getSessionUser();
|
||||
const { hasActiveSubscription, usedTrialSubscription } = await getSubscription({
|
||||
const { hasActiveSubscription } = await getSubscription({
|
||||
telegramId,
|
||||
});
|
||||
|
||||
const canUseTrial = !usedTrialSubscription;
|
||||
const { subscriptions } = await getSubscriptions({
|
||||
filters: { customer: { telegramId: { eq: telegramId } } },
|
||||
});
|
||||
|
||||
const canUseTrial = !subscriptions?.length;
|
||||
|
||||
const { subscriptionPrices = [] } = await getSubscriptionPrices({
|
||||
filters: {
|
||||
|
||||
@ -122,8 +122,8 @@ export class SubscriptionsService extends BaseService {
|
||||
const { customer } = await this.checkIsBanned();
|
||||
|
||||
// Проверяем, не использовал ли пользователь уже пробный период
|
||||
const hasUserTrial = await this.usedTrialSubscription();
|
||||
if (hasUserTrial) throw new Error(ERRORS.TRIAL_PERIOD_ALREADY_USED);
|
||||
const hasTrial = await this.hasTrialSubscription();
|
||||
if (hasTrial) throw new Error(ERRORS.TRIAL_PERIOD_ALREADY_USED);
|
||||
|
||||
// Получаем цены подписки для определения длительности пробного периода
|
||||
const { subscriptionPrices } = await this.getSubscriptionPrices({
|
||||
@ -199,15 +199,12 @@ export class SubscriptionsService extends BaseService {
|
||||
|
||||
const { maxOrdersPerMonth, remainingOrdersCount } = await this.getRemainingOrdersCount();
|
||||
|
||||
const usedTrialSubscription = await this.usedTrialSubscription();
|
||||
|
||||
return {
|
||||
hasActiveSubscription,
|
||||
maxOrdersPerMonth,
|
||||
remainingDays,
|
||||
remainingOrdersCount,
|
||||
subscription,
|
||||
usedTrialSubscription,
|
||||
};
|
||||
}
|
||||
|
||||
@ -296,7 +293,7 @@ export class SubscriptionsService extends BaseService {
|
||||
return mutationResult.data;
|
||||
}
|
||||
|
||||
async usedTrialSubscription() {
|
||||
async hasTrialSubscription() {
|
||||
const { customer } = await this._getUser();
|
||||
|
||||
const { subscriptionHistories } = await this.getSubscriptionHistory({
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user