Skip to content

Commit 804e3b4

Browse files
feat(frontend): add mobile warning banner to login and signup pages (#11383)
## Summary Adds a non-blocking warning banner to Login and Sign Up pages that alerts mobile users about potential limitations in the mobile experience. ## Changes - Created `MobileWarningBanner` component in `src/components/auth/` - Integrated banner into Login page (`/login`) - Integrated banner into Sign Up page (`/signup`) - Banner displays only on mobile devices (viewports < 768px) - Uses existing `useBreakpoint` hook for responsive detection ## Design Details - **Position**: Appears below the login/signup card (after the bottom "Sign up"/"Log in" links) - **Style**: Amber-themed warning banner with DeviceMobile icon - **Message**: - Title: "Heads up: AutoGPT works best on desktop" - Description: "Some features may be limited on mobile. For the best experience, consider switching to a desktop." - **Behavior**: Non-blocking, no user interaction required <img width="342" height="81" alt="image" src="https://github.com/user-attachments/assets/b6584299-b388-4d8d-b951-02bd95915566" /> #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [x] Verified banner appears on mobile viewports (< 768px) - [x] Verified banner is hidden on desktop viewports (≥ 768px) - [x] Tested on Login page - [x] Tested on Sign Up page <img width="342" height="758" alt="image" src="https://github.com/user-attachments/assets/077b3e0a-ab9c-41c7-83b7-7ee80a3396fd" /> <img width="342" height="759" alt="image" src="https://github.com/user-attachments/assets/77a64b28-748b-4d97-bd7c-67c55e5e9f22" /> --------- Co-authored-by: Abhimanyu Yadav <[email protected]>
1 parent 9c3f679 commit 804e3b4

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

autogpt_platform/frontend/src/app/(platform)/login/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Turnstile from "@/components/auth/Turnstile";
1111
import { environment } from "@/services/environment";
1212
import { LoadingLogin } from "./components/LoadingLogin";
1313
import { useLoginPage } from "./useLoginPage";
14+
import { MobileWarningBanner } from "@/components/auth/MobileWarningBanner";
1415

1516
export default function LoginPage() {
1617
const {
@@ -127,6 +128,7 @@ export default function LoginPage() {
127128
link={{ text: "Sign up", href: "/signup" }}
128129
/>
129130
</AuthCard>
131+
<MobileWarningBanner />
130132
<EmailNotAllowedModal
131133
isOpen={showNotAllowedModal}
132134
onClose={handleCloseNotAllowedModal}

autogpt_platform/frontend/src/app/(platform)/signup/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { environment } from "@/services/environment";
2121
import { WarningOctagonIcon } from "@phosphor-icons/react/dist/ssr";
2222
import { LoadingSignup } from "./components/LoadingSignup";
2323
import { useSignupPage } from "./useSignupPage";
24+
import { MobileWarningBanner } from "@/components/auth/MobileWarningBanner";
2425

2526
export default function SignupPage() {
2627
const {
@@ -205,6 +206,7 @@ export default function SignupPage() {
205206
link={{ text: "Log in", href: "/login" }}
206207
/>
207208
</AuthCard>
209+
<MobileWarningBanner />
208210
<EmailNotAllowedModal
209211
isOpen={showNotAllowedModal}
210212
onClose={handleCloseNotAllowedModal}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"use client";
2+
3+
import { useBreakpoint } from "@/lib/hooks/useBreakpoint";
4+
import { DeviceMobile } from "@phosphor-icons/react";
5+
import { Text } from "../atoms/Text/Text";
6+
7+
export function MobileWarningBanner() {
8+
const breakpoint = useBreakpoint();
9+
const isMobile = breakpoint === "base" || breakpoint === "sm";
10+
11+
if (!isMobile) {
12+
return null;
13+
}
14+
15+
return (
16+
<div className="mx-auto mt-6 w-full max-w-[32rem] rounded-lg border border-amber-200 bg-amber-50 p-4">
17+
<div className="flex items-start gap-3">
18+
<DeviceMobile className="mt-0.5 h-5 w-5 flex-shrink-0 text-amber-600" />
19+
<div className="flex flex-col gap-1">
20+
<Text variant="body-medium" className="text-amber-900">
21+
Heads up: AutoGPT works best on desktop
22+
</Text>
23+
<Text variant="small" className="text-amber-800">
24+
Some features may be limited on mobile. For the best experience,
25+
consider switching to a desktop.
26+
</Text>
27+
</div>
28+
</div>
29+
</div>
30+
);
31+
}

0 commit comments

Comments
 (0)