-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Redesign login page with Ona banner & Banners in Workspace start pages #20909
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 3 commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
1057aaf
Add Ona banner to start page with compact and full versions
Siddhant-K-code 7c21472
Login page - Ona right panel for waitlist sign-up and information fo…
Siddhant-K-code 9d583ee
only send email what user submitted
Siddhant-K-code eb68663
Refactor login component to use installation configuration for enterp…
Siddhant-K-code 78eb8f8
improve login page
Siddhant-K-code aad7209
Update Ona banner links to point to Gitpod solutions and add dismiss …
Siddhant-K-code f74d81e
improve login page
Siddhant-K-code 6b26b40
nice keyB
Siddhant-K-code e785d73
addressing review nit
Siddhant-K-code 470438b
Refactor OnaBanner and AppNotifications components for improved layou…
Siddhant-K-code e6c4f64
Update OnaBanner positioning logic and adjust text alignment for impr…
Siddhant-K-code 5ef4b30
minor improvements
Siddhant-K-code File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,118 @@ | ||
| /** | ||
| * Copyright (c) 2025 Gitpod GmbH. All rights reserved. | ||
| * Licensed under the GNU Affero General Public License (AGPL). | ||
| * See License.AGPL.txt in the project root for license information. | ||
| */ | ||
|
|
||
| import React, { useState, useEffect } from "react"; | ||
| import { trackEvent } from "./Analytics"; | ||
| import { useCurrentUser } from "./user-context"; | ||
| import { getPrimaryEmail } from "@gitpod/public-api-common/lib/user-utils"; | ||
| import { useToast } from "./components/toasts/Toasts"; | ||
| import onaWordmark from "./images/ona-wordmark.svg"; | ||
| import onaApplication from "./images/ona-application.webp"; | ||
|
|
||
| export const OnaRightPanel = () => { | ||
| const [email, setEmail] = useState(""); | ||
| const [isSubmitted, setIsSubmitted] = useState(false); | ||
| const user = useCurrentUser(); | ||
| const { toast } = useToast(); | ||
|
|
||
| useEffect(() => { | ||
| const storedOnaData = localStorage.getItem("ona-waitlist-data"); | ||
| if (storedOnaData) { | ||
| const { submitted } = JSON.parse(storedOnaData); | ||
| setIsSubmitted(submitted || false); | ||
| } | ||
| }, []); | ||
|
|
||
| const handleEmailSubmit = (e: React.FormEvent) => { | ||
| e.preventDefault(); | ||
| if (!email.trim()) return; | ||
|
|
||
| const userEmail = user ? getPrimaryEmail(user) || email : email; | ||
| trackEvent("waitlist_joined", { email: userEmail, feature: "Ona" }); | ||
|
|
||
| setIsSubmitted(true); | ||
| localStorage.setItem("ona-waitlist-data", JSON.stringify({ submitted: true })); | ||
|
|
||
| toast( | ||
| <div> | ||
| <div className="font-medium">You're on the waitlist</div> | ||
| <div className="text-sm opacity-80">We'll reach out to you soon.</div> | ||
| </div>, | ||
| ); | ||
| }; | ||
|
|
||
| return ( | ||
| <div className="w-full lg:w-1/3 flex flex-col justify-center p-4 lg:p-6 md:min-h-screen"> | ||
| <div | ||
| className="rounded-lg flex flex-col gap-6 text-white p-6 h-full max-w-md mx-auto w-full" | ||
| style={{ | ||
| background: | ||
| "linear-gradient(340deg, #1F1329 0%, #333A75 20%, #556CA8 40%, #90A898 60%, #E2B15C 80%, #BEA462 100%)", | ||
| }} | ||
| > | ||
| <div className="flex justify-center pt-4"> | ||
| <img src={onaWordmark} alt="ONA" className="w-32" draggable="false" /> | ||
| </div> | ||
|
|
||
| <div className="relative bg-white/10 backdrop-blur-sm rounded-lg p-4 -mt-2"> | ||
| <img | ||
| src={onaApplication} | ||
| alt="Ona application preview" | ||
| className="w-full h-auto rounded-lg shadow-lg" | ||
| draggable="false" | ||
| /> | ||
| </div> | ||
|
|
||
| <div className="flex flex-col gap-4 flex-1"> | ||
| <h2 className="text-white text-xl font-bold leading-tight text-center"> | ||
| Meet Ona - the privacy-first software engineering agent. | ||
| </h2> | ||
|
|
||
| <div className="space-y-3 text-sm text-white/90 leading-relaxed"> | ||
| <p> | ||
| Delegate software tasks to Ona. It writes code, runs tests, and opens a pull request. Or | ||
| jump in to inspect output or pair program in your IDE. | ||
| </p> | ||
| <p> | ||
| Ona runs inside your infrastructure (VPC), with full audit trails, zero data exposure, and | ||
| support for any LLM. | ||
| </p> | ||
| </div> | ||
|
|
||
| <div className="mt-auto pt-4"> | ||
| {!isSubmitted ? ( | ||
| <form onSubmit={handleEmailSubmit} className="space-y-3"> | ||
| <input | ||
| type="email" | ||
| value={email} | ||
| onChange={(e) => setEmail(e.target.value)} | ||
| placeholder="Enter your work email" | ||
| className="w-full px-4 py-2.5 rounded-lg bg-white/10 backdrop-blur-sm border border-white/20 text-white placeholder-white/60 focus:outline-none focus:ring-2 focus:ring-white/30 text-sm" | ||
| required | ||
| /> | ||
| <button | ||
| type="submit" | ||
| className="w-full bg-white text-gray-900 font-medium py-2.5 px-4 rounded-lg hover:bg-gray-100 transition-colors text-sm inline-flex items-center justify-center gap-2" | ||
| > | ||
| Request access | ||
| <span className="font-bold">→</span> | ||
| </button> | ||
| </form> | ||
| ) : ( | ||
| <button | ||
| onClick={() => window.open("https://ona.com/", "_blank", "noopener,noreferrer")} | ||
| className="w-full bg-white/20 backdrop-blur-sm text-white font-medium py-2.5 px-4 rounded-lg hover:bg-white/30 transition-colors border border-white/20 inline-flex items-center justify-center gap-2 text-sm" | ||
| > | ||
| Learn more | ||
| <span className="font-bold">→</span> | ||
| </button> | ||
| )} | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| ); | ||
| }; |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.