diff --git a/packages/backend/server/src/plugins/payment/resolver.ts b/packages/backend/server/src/plugins/payment/resolver.ts index 54d5e932d..62a6b4831 100644 --- a/packages/backend/server/src/plugins/payment/resolver.ts +++ b/packages/backend/server/src/plugins/payment/resolver.ts @@ -461,7 +461,11 @@ export class UserSubscriptionResolver { where: { targetId: user.id, status: { - in: [SubscriptionStatus.Active, SubscriptionStatus.Trialing], + in: [ + SubscriptionStatus.Active, + SubscriptionStatus.Trialing, + SubscriptionStatus.PastDue, + ], }, }, }); diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/ai-plan-card.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/ai-plan-card.tsx index 2dce0ccfd..c257bdff8 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/ai-plan-card.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/ai-plan-card.tsx @@ -76,30 +76,36 @@ export const AIPlanCard = ({ onClick }: { onClick: () => void }) => { status={subscription?.status} /> } - desc={billingTip} + desc={ + <> + {billingTip} +
+ {price?.yearlyAmount ? ( + subscription ? ( + isOnetime ? ( + + ) : subscription.canceledAt ? ( + + ) : ( + + ) + ) : ( + + {t[ + 'com.affine.payment.billing-setting.ai.start-free-trial' + ]()} + + ) + ) : null} + +
+ + } /> - {price?.yearlyAmount ? ( - subscription ? ( - isOnetime ? ( - - ) : subscription.canceledAt ? ( - - ) : ( - - ) - ) : ( - - {t['com.affine.payment.billing-setting.ai.start-free-trial']()} - - ) - ) : null} - {subscription?.status === SubscriptionStatus.PastDue ? ( - - ) : null}

{subscription ? priceReadable : '$0'} diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/pro-plan-card.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/pro-plan-card.tsx index 72e20ae98..9201893f2 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/pro-plan-card.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/pro-plan-card.tsx @@ -89,14 +89,14 @@ export const ProPlanCard = ({ }} /> + } /> -

${amount} @@ -148,7 +148,6 @@ const CloudExpirationInfo = () => { const PlanAction = ({ plan, - subscriptionStatus, gotoPlansSetting, }: { plan: string; @@ -165,7 +164,7 @@ const PlanAction = ({ } return ( - <> +

); }; diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/style.css.ts b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/style.css.ts index 1c7a3ddb4..f7b4c06fe 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/style.css.ts +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/billing/style.css.ts @@ -23,7 +23,6 @@ export const currentPlan = style({ }); export const planAction = style({ width: 'auto !important', - marginTop: '8px', }); export const planPrice = style({ fontSize: cssVar('fontH6'), @@ -35,6 +34,12 @@ export const billingFrequency = style({ export const paymentMethod = style({ marginTop: '24px', }); +export const planActionContainer = style({ + display: 'flex', + gap: '12px', + marginTop: '12px', +}); + globalStyle('.dangerous-setting .name', { color: cssVarV2('status/error'), }); @@ -129,7 +134,4 @@ export const cardLabelIcon = style({ width: '14px', height: '14px', }); -export const manageMentInCard = style({ - marginTop: '8px', - marginLeft: '12px', -}); +export const managementInCard = style({});