Skip to content

Commit 2409893

Browse files
committed
refactor: Extract Card component
1 parent 44d4556 commit 2409893

File tree

3 files changed

+65
-39
lines changed

3 files changed

+65
-39
lines changed
Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
import { useConfig, useTranslations } from "~/hooks";
1+
interface CustomSignInScreenProps {
2+
children: React.ReactNode;
3+
className?: string;
4+
}
25

36
export function CustomSignInScreen({
47
children,
5-
}: {
6-
children: React.ReactNode;
7-
}) {
8-
return (
9-
<div className="fui-screen">
10-
<div className="fui-card">
11-
<div className="fui-card__container">{children}</div>
12-
</div>
13-
</div>
14-
);
8+
className,
9+
}: CustomSignInScreenProps) {
10+
return <div className={`fui-screen ${className || ""}`}>{children}</div>;
1511
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
interface CardProps {
2+
children: React.ReactNode;
3+
}
4+
5+
export function Card({ children }: CardProps) {
6+
return (
7+
<div className="fui-card">
8+
<div className="fui-card__container">{children}</div>
9+
</div>
10+
);
11+
}

packages/firebaseui-react/src/main.tsx

Lines changed: 47 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { StrictMode } from "react";
22
import { createRoot } from "react-dom/client";
33
import { initializeUI } from "@firebase-ui/core";
4-
import { CustomSignInScreen } from "./auth/custom-sign-in-screen";
54
import { useAuth } from "~/hooks";
65
import { onAuthStateChanged, signOut } from "firebase/auth";
76
import { useState, useEffect } from "react";
@@ -17,6 +16,8 @@ import Example1 from "./examples/example_1";
1716
import Example2 from "./examples/example_2";
1817
import Example3 from "./examples/example_3";
1918
import { CardHeader } from "./components/card-header";
19+
import { Card } from "./components/card";
20+
import { CustomSignInScreen } from "./auth/custom-sign-in-screen";
2021

2122
import "./styles.css";
2223
import { connectAuthEmulator, getAuth } from "firebase/auth";
@@ -114,55 +115,71 @@ function App() {
114115
if (path === "/signin") {
115116
return (
116117
<CustomSignInScreen>
117-
<CardHeader titleKey="signIn" subtitleKey="signInToAccount" />
118-
<EmailPasswordForm
119-
onForgotPasswordClick={() => navigate("/forgot-password")}
120-
onRegisterClick={() => navigate("/register")}
121-
/>
122-
<Divider text="or" />
123-
<GoogleForm />
118+
<Card>
119+
<CardHeader titleKey="signIn" subtitleKey="signInToAccount" />
120+
<EmailPasswordForm
121+
onForgotPasswordClick={() => navigate("/forgot-password")}
122+
onRegisterClick={() => navigate("/register")}
123+
/>
124+
<Divider text="or" />
125+
<GoogleForm />
126+
</Card>
124127
</CustomSignInScreen>
125128
);
126129
}
127130

128131
if (path === "/forgot-password") {
129132
return (
130133
<CustomSignInScreen>
131-
<CardHeader titleKey="resetPassword" subtitleKey="enterEmailToReset" />
132-
<ForgotPasswordForm />
134+
<Card>
135+
<CardHeader
136+
titleKey="resetPassword"
137+
subtitleKey="enterEmailToReset"
138+
/>
139+
<ForgotPasswordForm />
140+
</Card>
133141
</CustomSignInScreen>
134142
);
135143
}
136144

137145
if (path === "/register") {
138146
return (
139147
<CustomSignInScreen>
140-
<CardHeader
141-
titleKey="createAccount"
142-
subtitleKey="enterDetailsToCreate"
143-
/>
144-
<RegisterForm onBackToSignInClick={() => navigate("/signin")} />
148+
<Card>
149+
<CardHeader
150+
titleKey="createAccount"
151+
subtitleKey="enterDetailsToCreate"
152+
/>
153+
<RegisterForm onBackToSignInClick={() => navigate("/signin")} />
154+
</Card>
145155
</CustomSignInScreen>
146156
);
147157
}
148158

149159
if (path === "/phone") {
150160
return (
151161
<CustomSignInScreen>
152-
<CardHeader titleKey="signInWithPhone" subtitleKey="enterPhoneNumber" />
153-
<PhoneForm />
162+
<Card>
163+
<CardHeader
164+
titleKey="signInWithPhone"
165+
subtitleKey="enterPhoneNumber"
166+
/>
167+
<PhoneForm />
168+
</Card>
154169
</CustomSignInScreen>
155170
);
156171
}
157172

158173
if (path === "/email-link") {
159174
return (
160175
<CustomSignInScreen>
161-
<CardHeader
162-
titleKey="signInWithEmailLink"
163-
subtitleKey="enterEmailForLink"
164-
/>
165-
<EmailLinkForm />
176+
<Card>
177+
<CardHeader
178+
titleKey="signInWithEmailLink"
179+
subtitleKey="enterEmailForLink"
180+
/>
181+
<EmailLinkForm />
182+
</Card>
166183
</CustomSignInScreen>
167184
);
168185
}
@@ -176,12 +193,14 @@ function App() {
176193
You are signed in anonymously
177194
</div>
178195
<CustomSignInScreen>
179-
<CardHeader titleKey="signIn" subtitleKey="signInToAccount" />
180-
<EmailPasswordForm
181-
onForgotPasswordClick={() => navigate("/forgot-password")}
182-
onRegisterClick={() => navigate("/register")}
183-
/>
184-
<GoogleForm />
196+
<Card>
197+
<CardHeader titleKey="signIn" subtitleKey="signInToAccount" />
198+
<EmailPasswordForm
199+
onForgotPasswordClick={() => navigate("/forgot-password")}
200+
onRegisterClick={() => navigate("/register")}
201+
/>
202+
<GoogleForm />
203+
</Card>
185204
</CustomSignInScreen>
186205
</div>
187206
);

0 commit comments

Comments
 (0)