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