From 2c49557a5d5e936c5ce2112a414f5248fd46aeb3 Mon Sep 17 00:00:00 2001 From: MyPC Date: Mon, 22 Jun 2026 21:39:15 +0700 Subject: [PATCH 1/2] improve the login and registration pages --- ...nurse-medical-consultation-MAHHY3lElT4.png | Bin 0 -> 104312 bytes frontend/src/index.css | 122 ++--- frontend/src/main.tsx | 3 + frontend/src/pages/LoginPage.tsx | 392 +++++++--------- frontend/src/pages/RegisterPage.tsx | 443 +++++++++--------- .../src/tests/pages/RegisterPage.test.tsx | 27 +- frontend/src/types/auth.ts | 2 +- 7 files changed, 480 insertions(+), 509 deletions(-) create mode 100644 frontend/src/assets/images/canva-doctor-and-nurse-medical-consultation-MAHHY3lElT4.png diff --git a/frontend/src/assets/images/canva-doctor-and-nurse-medical-consultation-MAHHY3lElT4.png b/frontend/src/assets/images/canva-doctor-and-nurse-medical-consultation-MAHHY3lElT4.png new file mode 100644 index 0000000000000000000000000000000000000000..cb5d6ff20d16fa4ba3ad51193f879988adff50ff GIT binary patch literal 104312 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

Ms& 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 literal 0 HcmV?d00001 diff --git a/frontend/src/index.css b/frontend/src/index.css index 33a8327..7994525 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -1,4 +1,7 @@ @import "tailwindcss"; + +@custom-variant dark (&:where(.dark, .dark *)); + :root { --text: #6b6375; --text-h: #08060d; @@ -16,24 +19,14 @@ --heading: system-ui, 'Segoe UI', Roboto, sans-serif; --mono: ui-monospace, Consolas, monospace; - font: 18px/145% var(--sans); - letter-spacing: 0.18px; - color-scheme: light dark; - color: var(--text); - background: var(--bg); - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - @media (max-width: 1024px) { font-size: 16px; } } -@media (prefers-color-scheme: dark) { - :root { - --text: #9ca3af; +.dark { + /* dark theme — prepared for future, not active yet */ + --text: #9ca3af; --text-h: #f3f4f6; --bg: #16171d; --border: #2e303a; @@ -44,8 +37,7 @@ --social-bg: rgba(47, 48, 58, 0.5); --shadow: rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px; - } - + #social .button-icon { filter: invert(1) brightness(2); } @@ -63,50 +55,64 @@ box-sizing: border-box; } -body { - margin: 0; -} +@layer base { + html { + font: 18px/145% var(--sans); + letter-spacing: 0.18px; + color-scheme: light; + color: var(--text); + background: var(--bg); + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; -h1, -h2 { - font-family: var(--heading); - font-weight: 500; - color: var(--text-h); -} - -h1 { - font-size: 56px; - letter-spacing: -1.68px; - margin: 32px 0; - @media (max-width: 1024px) { - font-size: 36px; - margin: 20px 0; } -} -h2 { - font-size: 24px; - line-height: 118%; - letter-spacing: -0.24px; - margin: 0 0 8px; - @media (max-width: 1024px) { - font-size: 20px; + body { + margin: 0; } -} -p { - margin: 0; -} - -code, -.counter { - font-family: var(--mono); - display: inline-flex; - border-radius: 4px; - color: var(--text-h); -} - -code { - font-size: 15px; - line-height: 135%; - padding: 4px 8px; - background: var(--code-bg); + + h1, + h2 { + font-family: var(--heading); + font-weight: 500; + color: var(--text-h); + } + + h1 { + font-size: 56px; + letter-spacing: -1.68px; + margin: 32px 0; + @media (max-width: 1024px) { + font-size: 36px; + margin: 20px 0; + } + } + h2 { + font-size: 24px; + line-height: 118%; + letter-spacing: -0.24px; + margin: 0 0 8px; + @media (max-width: 1024px) { + font-size: 20px; + } + } + p { + margin: 0; + } + + code, + .counter { + font-family: var(--mono); + display: inline-flex; + border-radius: 4px; + color: var(--text-h); + } + + code { + font-size: 15px; + line-height: 135%; + padding: 4px 8px; + background: var(--code-bg); + } } diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index bef5202..318fbf8 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -3,6 +3,9 @@ import { createRoot } from 'react-dom/client' import './index.css' import App from './App.tsx' +document.documentElement.classList.add('light'); +document.documentElement.dataset.theme = 'light'; + createRoot(document.getElementById('root')!).render( diff --git a/frontend/src/pages/LoginPage.tsx b/frontend/src/pages/LoginPage.tsx index 2d24284..9483949 100644 --- a/frontend/src/pages/LoginPage.tsx +++ b/frontend/src/pages/LoginPage.tsx @@ -1,9 +1,11 @@ +// frontend/src/pages/LoginPage.tsx import { useState } from 'react'; import { useNavigate, useLocation, Link } from 'react-router-dom'; import { AxiosError } from 'axios'; import { authService } from '../services/authService'; import { useAuth } from '../hooks/useAuth'; import type { LoginPayload, ApiValidationError, UserRole } from '../types/auth'; +import doctorsIllustration from '../assets/images/canva-doctor-and-nurse-medical-consultation-MAHHY3lElT4.png'; type FieldErrors = Partial>; @@ -24,6 +26,7 @@ export default function LoginPage() { const [form, setForm] = useState({ email: '', password: '' }); const [rememberMe, setRememberMe] = useState(false); + const [showPassword, setShowPassword] = useState(false); const [fieldErrors, setFieldErrors] = useState({}); const [genericError, setGenericError] = useState(''); const [isLoading, setIsLoading] = useState(false); @@ -66,235 +69,184 @@ export default function LoginPage() { } return ( -

-
-
-

QueueNova Health

-

Masuk ke akun Anda

+
+ {/* LEFT PANEL */} +
+
+ + {successMessage && ( +
+ {successMessage} +
+ )} + + {genericError && ( +
+ {genericError} +
+ )} + +

Sign in

+ +

+ Don't have an account?{' '} + + Create now + +

+ +
+ {/* Email */} +
+ + + {fieldErrors.email && ( + + {fieldErrors.email} + + )} +
+ + {/* Password */} +
+ +
+ + +
+ {fieldErrors.password && ( + + {fieldErrors.password} + + )} +
+ + {/* Remember me + Forgot password */} +
+ + + Forgot Password? + +
+ + {/* Submit */} + +
+
- {successMessage && ( -
- {successMessage} -
- )} - - {genericError && ( -
- {genericError} -
- )} - -
-
- - - {fieldErrors.email && ( - - {fieldErrors.email} - - )} + {/* RIGHT PANEL */} +
+ {/* Logo */} +
+
+ + + + +
+ QueueNova +
-
- - +
+ {/* Grey cloud blob behind illustration */} +
+ Doctor and nurse illustration - {fieldErrors.password && ( - - {fieldErrors.password} - - )}
-
- -
+

+ Welcome to QueueNova Health +

+
- - - -

- Belum punya akun?{' '} - - Daftar sekarang - -

+ + + + +
); -} - -const styles: Record = { - container: { - minHeight: '100vh', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - backgroundColor: '#f5f7fa', - padding: '24px', - }, - card: { - backgroundColor: '#ffffff', - borderRadius: '8px', - border: '1px solid #e2e8f0', - padding: '40px', - width: '100%', - maxWidth: '400px', - }, - header: { - marginBottom: '28px', - }, - title: { - fontSize: '20px', - fontWeight: 700, - color: '#1a202c', - margin: 0, - }, - subtitle: { - fontSize: '14px', - color: '#64748b', - marginTop: '4px', - marginBottom: 0, - }, - form: { - display: 'flex', - flexDirection: 'column', - gap: '16px', - }, - fieldWrapper: { - display: 'flex', - flexDirection: 'column', - gap: '4px', - }, - label: { - fontSize: '13px', - fontWeight: 500, - color: '#374151', - }, - input: { - padding: '10px 12px', - fontSize: '14px', - border: '1px solid #d1d5db', - borderRadius: '6px', - outline: 'none', - color: '#1a202c', - backgroundColor: '#ffffff', - }, - inputError: { - borderColor: '#ef4444', - }, - fieldError: { - fontSize: '12px', - color: '#ef4444', - }, - successBanner: { - padding: '10px 14px', - backgroundColor: '#f0fdf4', - border: '1px solid #bbf7d0', - borderRadius: '6px', - fontSize: '13px', - color: '#15803d', - marginBottom: '16px', - }, - genericError: { - padding: '10px 14px', - backgroundColor: '#fef2f2', - border: '1px solid #fecaca', - borderRadius: '6px', - fontSize: '13px', - color: '#b91c1c', - marginBottom: '16px', - }, - rememberRow: { - display: 'flex', - alignItems: 'center', - }, - checkboxLabel: { - display: 'flex', - alignItems: 'center', - gap: '8px', - fontSize: '13px', - color: '#374151', - cursor: 'pointer', - }, - checkbox: { - cursor: 'pointer', - }, - button: { - marginTop: '4px', - padding: '11px', - backgroundColor: '#2563eb', - color: '#ffffff', - border: 'none', - borderRadius: '6px', - fontSize: '14px', - fontWeight: 600, - cursor: 'pointer', - }, - buttonDisabled: { - backgroundColor: '#93c5fd', - cursor: 'not-allowed', - }, - footer: { - marginTop: '20px', - fontSize: '13px', - color: '#64748b', - textAlign: 'center', - }, - link: { - color: '#2563eb', - textDecoration: 'none', - fontWeight: 500, - }, -}; \ No newline at end of file +} \ No newline at end of file diff --git a/frontend/src/pages/RegisterPage.tsx b/frontend/src/pages/RegisterPage.tsx index b88afc2..24c7944 100644 --- a/frontend/src/pages/RegisterPage.tsx +++ b/frontend/src/pages/RegisterPage.tsx @@ -1,8 +1,10 @@ +// frontend/src/pages/RegisterPage.tsx import { useState } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { AxiosError } from 'axios'; import { authService } from '../services/authService'; import type { RegisterPayload, ApiValidationError } from '../types/auth'; +import doctorsIllustration from '../assets/images/canva-doctor-and-nurse-medical-consultation-MAHHY3lElT4.png'; type FieldErrors = Partial>; @@ -14,9 +16,10 @@ export default function RegisterPage() { email: '', password: '', password_confirmation: '', - phone: '', }); + const [showPassword, setShowPassword] = useState(false); + const [showPasswordConfirmation, setShowPasswordConfirmation] = useState(false); const [fieldErrors, setFieldErrors] = useState({}); const [genericError, setGenericError] = useState(''); const [isLoading, setIsLoading] = useState(false); @@ -58,225 +61,237 @@ export default function RegisterPage() { } return ( -
-
-
-

QueueNova Health

-

Buat akun baru

-
+
+ {/* LEFT PANEL */} +
+
- {genericError && ( -
- {genericError} -
- )} + {genericError && ( +
+ {genericError} +
+ )} -
- - - - - +

Sign up

- - +

+ Already have an account?{' '} + + Sign in + +

+ +
+ + {/* Name */} +
+ + + {fieldErrors.name && ( + + {fieldErrors.name} + + )} +
+ + {/* Email */} +
+ + + {fieldErrors.email && ( + + {fieldErrors.email} + + )} +
-

- Sudah punya akun?{' '} - - Masuk - -

+ {/* Password */} +
+ +
+ + +
+ {fieldErrors.password && ( + + {fieldErrors.password} + + )} +
+ + {/* Confirm Password */} +
+ +
+ + +
+ {fieldErrors.password_confirmation && ( + + {fieldErrors.password_confirmation} + + )} +
+ + {/* Submit */} + +
+
-
- ); -} -interface FieldProps { - label: string; - name: string; - type: string; - value: string; - onChange: (e: React.ChangeEvent) => void; - error?: string; - autoComplete?: string; -} + {/* RIGHT PANEL */} +
+ {/* Logo */} +
+
+ + + + + +
+ QueueNova +
-function Field({ label, name, type, value, onChange, error, autoComplete }: FieldProps) { - return ( -
- - - {error && ( - - {error} - - )} + {/* Illustration */} +
+
+
+ Doctor and nurse illustration +
+ +

+ Welcome to QueueNova Health +

+
+ + {/* Carousel dots */} +
+ + + + + +
+
); -} - -const styles: Record = { - container: { - minHeight: '100vh', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - backgroundColor: '#f5f7fa', - padding: '24px', - }, - card: { - backgroundColor: '#ffffff', - borderRadius: '8px', - border: '1px solid #e2e8f0', - padding: '40px', - width: '100%', - maxWidth: '420px', - }, - header: { - marginBottom: '28px', - }, - title: { - fontSize: '20px', - fontWeight: 700, - color: '#1a202c', - margin: 0, - }, - subtitle: { - fontSize: '14px', - color: '#64748b', - marginTop: '4px', - marginBottom: 0, - }, - form: { - display: 'flex', - flexDirection: 'column', - gap: '16px', - }, - fieldWrapper: { - display: 'flex', - flexDirection: 'column', - gap: '4px', - }, - label: { - fontSize: '13px', - fontWeight: 500, - color: '#374151', - }, - input: { - padding: '10px 12px', - fontSize: '14px', - border: '1px solid #d1d5db', - borderRadius: '6px', - outline: 'none', - color: '#1a202c', - backgroundColor: '#ffffff', - transition: 'border-color 0.15s', - }, - inputError: { - borderColor: '#ef4444', - }, - fieldError: { - fontSize: '12px', - color: '#ef4444', - }, - genericError: { - padding: '10px 14px', - backgroundColor: '#fef2f2', - border: '1px solid #fecaca', - borderRadius: '6px', - fontSize: '13px', - color: '#b91c1c', - marginBottom: '16px', - }, - button: { - marginTop: '4px', - padding: '11px', - backgroundColor: '#2563eb', - color: '#ffffff', - border: 'none', - borderRadius: '6px', - fontSize: '14px', - fontWeight: 600, - cursor: 'pointer', - }, - buttonDisabled: { - backgroundColor: '#93c5fd', - cursor: 'not-allowed', - }, - footer: { - marginTop: '20px', - fontSize: '13px', - color: '#64748b', - textAlign: 'center', - }, - link: { - color: '#2563eb', - textDecoration: 'none', - fontWeight: 500, - }, -}; \ No newline at end of file +} \ No newline at end of file diff --git a/frontend/src/tests/pages/RegisterPage.test.tsx b/frontend/src/tests/pages/RegisterPage.test.tsx index 4f13cb4..1cc7961 100644 --- a/frontend/src/tests/pages/RegisterPage.test.tsx +++ b/frontend/src/tests/pages/RegisterPage.test.tsx @@ -45,12 +45,11 @@ describe('RegisterPage', () => { it('renders all form fields and submit button', () => { renderRegisterPage(); - expect(screen.getByLabelText('Nama Lengkap')).toBeInTheDocument(); + expect(screen.getByLabelText('Full Name')).toBeInTheDocument(); expect(screen.getByLabelText('Email')).toBeInTheDocument(); - expect(screen.getByLabelText('No. Telepon')).toBeInTheDocument(); expect(screen.getByLabelText('Password')).toBeInTheDocument(); - expect(screen.getByLabelText('Konfirmasi Password')).toBeInTheDocument(); - expect(screen.getByRole('button', { name: 'Daftar' })).toBeInTheDocument(); + expect(screen.getByLabelText('Confirm Password')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Register' })).toBeInTheDocument(); }); it('calls authService.register with form values on submit', async () => { @@ -61,29 +60,25 @@ describe('RegisterPage', () => { renderRegisterPage(); - fireEvent.change(screen.getByLabelText('Nama Lengkap'), { + fireEvent.change(screen.getByLabelText('Full Name'), { target: { value: 'Ucok Sitorus' }, }); fireEvent.change(screen.getByLabelText('Email'), { target: { value: 'ucok@example.com' }, }); - fireEvent.change(screen.getByLabelText('No. Telepon'), { - target: { value: '081234567890' }, - }); fireEvent.change(screen.getByLabelText('Password'), { target: { value: 'password123' }, }); - fireEvent.change(screen.getByLabelText('Konfirmasi Password'), { + fireEvent.change(screen.getByLabelText('Confirm Password'), { target: { value: 'password123' }, }); - fireEvent.click(screen.getByRole('button', { name: 'Daftar' })); + fireEvent.click(screen.getByRole('button', { name: 'Register' })); await waitFor(() => { expect(authService.register).toHaveBeenCalledWith({ name: 'Ucok Sitorus', email: 'ucok@example.com', - phone: '081234567890', password: 'password123', password_confirmation: 'password123', }); @@ -100,7 +95,7 @@ describe('RegisterPage', () => { fireEvent.change(screen.getByLabelText('Email'), { target: { value: 'ucok@example.com' }, }); - fireEvent.click(screen.getByRole('button', { name: 'Daftar' })); + fireEvent.click(screen.getByRole('button', { name: 'Register' })); await waitFor(() => { expect(mockNavigate).toHaveBeenCalledWith('/login', { @@ -123,7 +118,7 @@ describe('RegisterPage', () => { vi.mocked(authService.register).mockRejectedValueOnce(error); renderRegisterPage(); - fireEvent.click(screen.getByRole('button', { name: 'Daftar' })); + fireEvent.click(screen.getByRole('button', { name: 'Register' })); await waitFor(() => { expect( @@ -136,7 +131,7 @@ describe('RegisterPage', () => { vi.mocked(authService.register).mockRejectedValueOnce(new Error('Network Error')); renderRegisterPage(); - fireEvent.click(screen.getByRole('button', { name: 'Daftar' })); + fireEvent.click(screen.getByRole('button', { name: 'Register' })); await waitFor(() => { expect( @@ -151,10 +146,10 @@ describe('RegisterPage', () => { ); renderRegisterPage(); - fireEvent.click(screen.getByRole('button', { name: 'Daftar' })); + fireEvent.click(screen.getByRole('button', { name: 'Register' })); await waitFor(() => { - expect(screen.getByRole('button', { name: 'Mendaftar...' })).toBeDisabled(); + expect(screen.getByRole('button', { name: 'Register...' })).toBeDisabled(); }); }); }); \ No newline at end of file diff --git a/frontend/src/types/auth.ts b/frontend/src/types/auth.ts index 8e1aaa6..8d356e8 100644 --- a/frontend/src/types/auth.ts +++ b/frontend/src/types/auth.ts @@ -29,7 +29,7 @@ export interface PatientProfile { email: string; password: string; password_confirmation: string; - phone: string; + // phone: string; } export interface LoginPayload { From 69ca7d093d631b4c71316a3f23376bb4f5a99712 Mon Sep 17 00:00:00 2001 From: MyPC Date: Mon, 22 Jun 2026 22:07:48 +0700 Subject: [PATCH 2/2] improve the login and registration pages --- frontend/src/pages/LoginPage.tsx | 2 +- frontend/src/tests/pages/LoginPage.test.tsx | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/pages/LoginPage.tsx b/frontend/src/pages/LoginPage.tsx index 9483949..eea2750 100644 --- a/frontend/src/pages/LoginPage.tsx +++ b/frontend/src/pages/LoginPage.tsx @@ -99,7 +99,7 @@ export default function LoginPage() { {/* Email */}
{ renderLoginPage(); expect(screen.getByLabelText('Email')).toBeInTheDocument(); expect(screen.getByLabelText('Password')).toBeInTheDocument(); - expect(screen.getByRole('button', { name: 'Masuk' })).toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Login' })).toBeInTheDocument(); }); it('calls authService.login with correct payload on submit', async () => { @@ -84,7 +84,7 @@ describe('LoginPage', () => { fireEvent.change(screen.getByLabelText('Password'), { target: { value: 'password123' }, }); - fireEvent.click(screen.getByRole('button', { name: 'Masuk' })); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); await waitFor(() => { expect(authService.login).toHaveBeenCalledWith({ @@ -104,7 +104,7 @@ describe('LoginPage', () => { fireEvent.change(screen.getByLabelText('Password'), { target: { value: 'password123' }, }); - fireEvent.click(screen.getByRole('button', { name: 'Masuk' })); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); await waitFor(() => { expect(mockSetAuth).toHaveBeenCalledWith(mockLoginResponse.data); @@ -123,7 +123,7 @@ describe('LoginPage', () => { vi.mocked(authService.login).mockRejectedValueOnce(error); renderLoginPage(); - fireEvent.click(screen.getByRole('button', { name: 'Masuk' })); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); await waitFor(() => { expect( @@ -146,7 +146,7 @@ describe('LoginPage', () => { vi.mocked(authService.login).mockRejectedValueOnce(error); renderLoginPage(); - fireEvent.click(screen.getByRole('button', { name: 'Masuk' })); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); await waitFor(() => { expect( @@ -161,10 +161,10 @@ describe('LoginPage', () => { ); renderLoginPage(); - fireEvent.click(screen.getByRole('button', { name: 'Masuk' })); + fireEvent.click(screen.getByRole('button', { name: 'Login' })); await waitFor(() => { - expect(screen.getByRole('button', { name: 'Masuk...' })).toBeDisabled(); + expect(screen.getByRole('button', { name: 'Logging in...' })).toBeDisabled(); }); });