diff --git a/app/package.json b/app/package.json index 6595d1d03..21974b9a1 100644 --- a/app/package.json +++ b/app/package.json @@ -37,7 +37,7 @@ "test:e2e:all:flows": "bash ./scripts/e2e-run-all-flows.sh", "test:e2e:all": "yarn test:e2e:build && yarn test:e2e:all:flows", "test:all": "yarn test:coverage && yarn test:rust && yarn test:e2e", - "rust:check": "cargo check --manifest-path ../Cargo.toml && cargo check --manifest-path src-tauri/Cargo.toml", + "rust:check": "cargo check --manifest-path src-tauri/Cargo.toml", "rust:format": "cargo fmt --manifest-path ../Cargo.toml --all && cargo fmt --manifest-path src-tauri/Cargo.toml --all", "rust:format:check": "cargo fmt --manifest-path ../Cargo.toml --all --check && cargo fmt --manifest-path src-tauri/Cargo.toml --all --check", "format": "prettier --write . && yarn rust:format", diff --git a/app/src/pages/Welcome.tsx b/app/src/pages/Welcome.tsx index 8c8190690..5766ac9bc 100644 --- a/app/src/pages/Welcome.tsx +++ b/app/src/pages/Welcome.tsx @@ -1,27 +1,77 @@ -import OAuthLoginSection from '../components/oauth/OAuthLoginSection'; +import { useState } from 'react'; + +import OAuthProviderButton from '../components/oauth/OAuthProviderButton'; +import { oauthProviderConfigs } from '../components/oauth/providerConfigs'; import RotatingTetrahedronCanvas from '../components/RotatingTetrahedronCanvas'; -import TypewriterGreeting from '../components/TypewriterGreeting'; const Welcome = () => { + const [email, setEmail] = useState(''); + + const handleEmailSubmit = (e: React.FormEvent) => { + e.preventDefault(); + if (!email.trim()) return; + // TODO: implement email auth flow + console.log('[Welcome] email submit:', email); + }; + return ( -
-
-
- +
+
+
+ {/* Logo */} +
+
+ +
+
+ + {/* Heading */} +

+ Sign in! Let's Cook +

+ + {/* Subtitle */} +

+ Welcome to OpenHuman! Your Personal + AI Super Intelligence. Private, Simple and extremely powerful. +

+ + {/* OAuth buttons — horizontal row */} +
+ {oauthProviderConfigs + .filter(p => ['google', 'github', 'twitter'].includes(p.id)) + .map(provider => ( + + ))} +
+ + {/* Divider */} +
+
+ Or +
+
+ + {/* Email input + CTA */} +
+ setEmail(e.target.value)} + placeholder="Enter your email" + className="w-full rounded-xl border border-stone-200 bg-white px-4 py-3 text-sm text-stone-900 placeholder:text-stone-400 outline-none focus:border-primary-500 focus:ring-1 focus:ring-primary-500 transition-colors" + /> + +
- - - -

- Welcome to OpenHuman! Your Personal AI - super intelligence. Private, Simple and extremely powerful. -

- - {/*
*/} - - {/*
*/}
);