// desktop/src/components/login/HeicodeLoginPage.tsx // // Production-grade login surface. Layout follows // docs/product-package/11-product-prototype-wireframes.md §1 // (brand wordmark + tagline + single sign-in card) but the visual // system was tightened up: // // - 36px chrome strip with drag region + window controls // - Layered gradient backdrop (violet/blue glow at top, vignette at // bottom) so the login surface feels like a hero, not a form // - Centered logo image + wordmark above tagline; both pull the // same gradient as --gradient-brand-wordmark so the login screen // matches the app icon you see in the title bar / taskbar / dock // - Single CTA card on a generous max-w-sm canvas // - Footer copy lives at the very bottom, not floating in the middle // // Visual references: Linear / Vercel / Raycast desktop login screens. import { useEffect } from 'react' import { useHeicodeAuthStore } from '../../stores/heicodeAuthStore' import { ProviderLoginCard } from './ProviderLoginCard' import { WindowControls } from '../layout/WindowControls' import { useTranslation } from '../../i18n' export function HeicodeLoginPage() { const t = useTranslation() const { providers, hasFetched, isLoading, error, fetch: fetchAuth, stopOAuthPolling, } = useHeicodeAuthStore() useEffect(() => { if (!hasFetched) { void fetchAuth() } return () => { stopOAuthPolling() } }, [hasFetched, fetchAuth, stopOAuthPolling]) return (
{t('login.tagline')}
{t('login.footer.heicodeProvidesModels')}