diff --git a/ondeck/public/seubert-logo.webp b/ondeck/public/seubert-logo.webp new file mode 100644 index 0000000..b56a4bf Binary files /dev/null and b/ondeck/public/seubert-logo.webp differ diff --git a/ondeck/src/app/auth/signin/page.tsx b/ondeck/src/app/auth/signin/page.tsx index a8acfca..b9b5c4e 100644 --- a/ondeck/src/app/auth/signin/page.tsx +++ b/ondeck/src/app/auth/signin/page.tsx @@ -1,21 +1,56 @@ import { SignInForm } from '@/components/auth/signin-form' +import Image from 'next/image' export default function SignInPage() { return ( -
-
-
-
-

Horizon

-

Policy Renewal Workflow Management

+
+ {/* Left panel — brand */} +
+
+ Seubert +
+
+

+ Policy Renewal
Workflow Management +

+

+ Horizon keeps your team on top of every renewal, every client, every deadline. +

+
+

+ © {new Date().getFullYear()} Seubert Enterprises, Inc. +

+
+ + {/* Right panel — form */} +
+
+ {/* Mobile logo */} +
+ Seubert
- + +
+

Welcome back

+

Sign in to your Horizon account

+
+
- -

- Sign in with your local account or Microsoft account -

) diff --git a/ondeck/src/components/auth/signin-form.tsx b/ondeck/src/components/auth/signin-form.tsx index 1b951a3..fb4328a 100644 --- a/ondeck/src/components/auth/signin-form.tsx +++ b/ondeck/src/components/auth/signin-form.tsx @@ -4,26 +4,21 @@ import { useState } from 'react' import { signIn } from 'next-auth/react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' -import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' -import { Building2, User } from 'lucide-react' +import { Loader2 } from 'lucide-react' export function SignInForm() { const [username, setUsername] = useState('') const [password, setPassword] = useState('') const [loading, setLoading] = useState(false) + const [msLoading, setMsLoading] = useState(false) const [error, setError] = useState('') + const [showLocal, setShowLocal] = useState(false) const handleLocalSignIn = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) setError('') - - const result = await signIn('credentials', { - username, - password, - redirect: false, - }) - + const result = await signIn('credentials', { username, password, redirect: false }) if (result?.error) { setError('Invalid username or password') setLoading(false) @@ -33,76 +28,80 @@ export function SignInForm() { } const handleMicrosoftSignIn = async () => { + setMsLoading(true) await signIn('azure-ad', { callbackUrl: '/dashboard' }) } return (
- {/* Local Account Login */} - - - - - Local Account - - - -
-
- setUsername(e.target.value)} - disabled={loading} - required - /> -
-
- setPassword(e.target.value)} - disabled={loading} - required - /> -
- {error && ( -

{error}

- )} - -
- -
-

Development Accounts:

-

• admin / admin123 (Admin)

-

• manager / manager123 (Manager)

-

• ae / ae123 (Account Executive)

-
-
-
+ {/* Microsoft SSO — primary */} + - {/* Microsoft Login (if configured) */} - - - + ) : ( +
+ setUsername(e.target.value)} + disabled={loading} + required + autoFocus + className="h-10" + /> + setPassword(e.target.value)} + disabled={loading} + required + className="h-10" + /> + {error &&

{error}

} + - - +
+ )}
) }