Skip to content

Commit 92d1cac

Browse files
committed
Fix sign up loading page
1 parent 72e879c commit 92d1cac

File tree

4 files changed

+50
-24
lines changed

4 files changed

+50
-24
lines changed

web/components/auth-context.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { getPrivateUserSafe, getUserSafe } from 'web/lib/supabase/users'
2020
import { useWebsocketPrivateUser, useWebsocketUser } from 'web/hooks/use-user'
2121
import { identifyUser, setUserProperty } from 'web/lib/service/analytics'
2222

23-
// Either we haven't looked up the logged in user yet (undefined), or we know
23+
// Either we haven't looked up the logged-in user yet (undefined), or we know
2424
// the user is not logged in (null), or we know the user is logged in.
2525
export type AuthUser =
2626
| undefined

web/components/widgets/editor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ export function Content(props: {
259259
return typeof content === 'string' ? (
260260
<Linkify
261261
className={clsx('whitespace-pre-line', proseClass(size), className)}
262-
text={content}
262+
text={content || ''}
263263
/>
264264
) : (
265265
<RichContent {...(props as any)} />

web/pages/register.tsx

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
22

3-
import {Suspense, useState} from "react";
3+
import {Suspense, useEffect, useState} from "react";
44
import Link from "next/link";
55
import {FcGoogle} from "react-icons/fc";
66
import {useSearchParams} from "next/navigation";
@@ -13,6 +13,7 @@ import {LovePage} from "web/components/love-page";
1313
import {getLoverRow} from "common/love/lover";
1414
import {db} from "web/lib/supabase/db";
1515
import Router from "next/router";
16+
import {useUser} from "web/hooks/use-user";
1617

1718

1819
export default function RegisterPage() {
@@ -31,24 +32,32 @@ function RegisterComponent() {
3132
const [isLoading, setIsLoading] = useState(false);
3233
const [registrationSuccess, setRegistrationSuccess] = useState(false);
3334
const [registeredEmail, setRegisteredEmail] = useState('');
35+
const user = useUser()
3436

3537
// function redirect() {
3638
// // Redirect to complete profile page
3739
// window.location.href = href;
3840
// }
3941

42+
useEffect(() => {
43+
const checkLoverAndRedirect = async () => {
44+
if (user) {
45+
const lover = await getLoverRow(user.id, db)
46+
if (lover) {
47+
await Router.push('/')
48+
} else {
49+
await Router.push('/signup')
50+
}
51+
setIsLoading(false);
52+
}
53+
}
54+
checkLoverAndRedirect()
55+
}, [user]);
56+
4057
const handleEmailPasswordSignUp = async (email: string, password: string) => {
4158
try {
4259
const creds = await createUserWithEmailAndPassword(auth, email, password);
4360
console.log("User signed up:", creds.user);
44-
await Router.push('/')
45-
const userId = creds?.user.uid
46-
if (userId) {
47-
const lover = await getLoverRow(userId, db)
48-
if (!lover) {
49-
await Router.push('/signup')
50-
}
51-
}
5261
} catch (error) {
5362
console.error("Error signing up:", error);
5463
if (error instanceof Error && error.message.includes("email-already-in-use")) {
@@ -94,7 +103,6 @@ function RegisterComponent() {
94103

95104
} catch (error) {
96105
handleError(error);
97-
} finally {
98106
setIsLoading(false);
99107
}
100108
}

web/pages/signup.tsx

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,23 @@ import {initialRequiredState, RequiredLoveUserForm,} from 'web/components/requir
44
import {OptionalLoveUserForm} from 'web/components/optional-lover-form'
55
import {useUser} from 'web/hooks/use-user'
66
import {LoadingIndicator} from 'web/components/widgets/loading-indicator'
7-
import {GoogleSignInButton} from 'web/components/buttons/sign-up-button'
8-
import {CACHED_REFERRAL_USERNAME_KEY, firebaseLogin,} from 'web/lib/firebase/users'
7+
import {CACHED_REFERRAL_USERNAME_KEY,} from 'web/lib/firebase/users'
98
import {api} from 'web/lib/api'
10-
import {useRouter} from 'next/router'
9+
import Router, {useRouter} from 'next/router'
1110
import ManifoldLoveLogo from 'web/components/manifold-love-logo'
1211
import {useTracking} from 'web/hooks/use-tracking'
1312
import {track} from 'web/lib/service/analytics'
1413
import {safeLocalStorage} from 'web/lib/util/local'
1514
import {removeUndefinedProps} from 'common/util/object'
1615
import {useLoverByUserId} from 'web/hooks/use-lover'
1716
import {LoverRow} from 'common/love/lover'
17+
import {LovePage} from "web/components/love-page";
18+
import {Button} from "web/components/buttons/button";
1819

1920
export default function SignupPage() {
2021
const [step, setStep] = useState(0)
2122
const user = useUser()
23+
console.log('user:', user)
2224
const router = useRouter()
2325
useTracking('view love signup page')
2426

@@ -40,17 +42,38 @@ export default function SignupPage() {
4042
}
4143
}, [existingLover])
4244

45+
if (step === 1 && user) {
46+
return <LovePage trackPageView={'register'}>
47+
<Col className={'w-full px-6 py-4'}>
48+
<OptionalLoveUserForm
49+
setLover={setLoverState}
50+
lover={loverForm}
51+
user={user}
52+
fromSignup
53+
/>
54+
</Col>
55+
</LovePage>
56+
}
57+
4358
return (
4459
<Col className="items-center">
4560
{user === undefined ? (
4661
<div/>
4762
) : user === null ? (
4863
<Col className={'items-center justify-around gap-4 pt-[20vh]'}>
49-
<ManifoldLoveLogo noLink/>
50-
<GoogleSignInButton onClick={firebaseLogin}/>
64+
<ManifoldLoveLogo/>
65+
<Button
66+
color={'gray-outline'}
67+
size={'2xl'}
68+
className={''}
69+
onClick={() => {
70+
Router.push('register')
71+
}}>
72+
Sign up
73+
</Button>
5174
</Col>
5275
) : (
53-
<Col className={'bg-canvas-0 w-full max-w-2xl px-6 py-4'}>
76+
<Col className={'w-full max-w-2xl px-6 py-4'}>
5477
{step === 0 ? (
5578
<RequiredLoveUserForm
5679
user={user}
@@ -89,12 +112,7 @@ export default function SignupPage() {
89112
}}
90113
/>
91114
) : step === 1 ? (
92-
<OptionalLoveUserForm
93-
setLover={setLoverState}
94-
lover={loverForm}
95-
user={user}
96-
fromSignup
97-
/>
115+
<></>
98116
) : (
99117
<LoadingIndicator/>
100118
)}

0 commit comments

Comments
 (0)