fix(core): cannot view pricing page if not logged in (#8907)

Due to lifetime plan card show `Upgrade` button that require accout, should show `Login` instead
This commit is contained in:
CatsJuice 2024-11-25 07:32:17 +00:00
parent 4ce8a180aa
commit 7c846c4434
No known key found for this signature in database
GPG Key ID: 1C1E76924FAFDDE4
2 changed files with 14 additions and 5 deletions

View File

@ -1,10 +1,10 @@
import { Button } from '@affine/component';
import { SubscriptionService } from '@affine/core/modules/cloud';
import { AuthService, SubscriptionService } from '@affine/core/modules/cloud';
import { SubscriptionRecurring } from '@affine/graphql';
import { Trans, useI18n } from '@affine/i18n';
import { useLiveData, useService } from '@toeverything/infra';
import { Upgrade } from '../plan-card';
import { SignUpAction, Upgrade } from '../plan-card';
import { BelieverCard } from './believer-card';
import { BelieverBenefits } from './benefits';
import * as styles from './style.css';
@ -12,6 +12,8 @@ import * as styles from './style.css';
export const LifetimePlan = () => {
const t = useI18n();
const subscriptionService = useService(SubscriptionService);
const loggedIn =
useLiveData(useService(AuthService).session.status$) === 'authenticated';
const readableLifetimePrice = useLiveData(
subscriptionService.prices.readableLifetimePrice$
@ -32,7 +34,11 @@ export const LifetimePlan = () => {
<div className={styles.price}>{readableLifetimePrice}</div>
{isBeliever ? (
{!loggedIn ? (
<SignUpAction className={styles.purchase}>
{t['com.affine.payment.sign-up-free']()}
</SignUpAction>
) : isBeliever ? (
<Button className={styles.purchase} size="default" disabled>
{t['com.affine.payment.lifetime.purchased']()}
</Button>

View File

@ -383,7 +383,10 @@ const ChangeRecurring = ({
);
};
const SignUpAction = ({ children }: PropsWithChildren) => {
export const SignUpAction = ({
children,
className,
}: PropsWithChildren<{ className?: string }>) => {
const setOpen = useSetAtom(authAtom);
const onClickSignIn = useCallback(() => {
@ -396,7 +399,7 @@ const SignUpAction = ({ children }: PropsWithChildren) => {
return (
<Button
onClick={onClickSignIn}
className={styles.planAction}
className={clsx(styles.planAction, className)}
variant="primary"
>
{children}