From ce9e1384441a882c35320dc12875cf09da95dd60 Mon Sep 17 00:00:00 2001 From: Sasanka20 Date: Thu, 9 Jul 2026 15:32:49 +0530 Subject: [PATCH] feat: enhance UI components and implement password reset flow with improved styling and validation --- Frontend/PROGRESS.md | 5 ++++- Frontend/erp-system/app/dashboard/layout.tsx | 6 ++---- Frontend/erp-system/app/dashboard/page.tsx | 10 +++++----- .../erp-system/app/login/forgot/otp/page.tsx | 12 ++++++------ Frontend/erp-system/app/login/forgot/page.tsx | 16 +++------------- .../erp-system/app/login/forgot/reset/page.tsx | 16 ++++++++-------- Frontend/erp-system/app/login/page.tsx | 6 +++--- .../components/Layouts/AppSidebar.tsx | 2 +- .../erp-system/components/Layouts/Footer.tsx | 4 ++-- .../erp-system/components/Layouts/Header.tsx | 2 +- Frontend/erp-system/components/ui/avatar.tsx | 2 +- Frontend/erp-system/components/ui/badge.tsx | 2 +- Frontend/erp-system/components/ui/button.tsx | 6 +++--- Frontend/erp-system/components/ui/toast.tsx | 2 +- Frontend/erp-system/lib/validations.ts | 18 ++++++++++++++---- Frontend/erp-system/next.config.ts | 5 ++++- docs/20-FRONTEND.md | 1 + 17 files changed, 60 insertions(+), 55 deletions(-) diff --git a/Frontend/PROGRESS.md b/Frontend/PROGRESS.md index b408e04..cbf7fca 100644 --- a/Frontend/PROGRESS.md +++ b/Frontend/PROGRESS.md @@ -12,7 +12,10 @@ Convention: `docs/01-DOC-GUIDE.md §6`. Update this file in the **same commit** - [ ] `ProblemDetails` normalizer + `code → message` map (`lib/`) ## 1. Auth -- [ ] Login screen → `POST /auth/login`; store token; attach to client +- [~] Login screen — UI built (`app/login`); not yet wired to `POST /auth/login` / token storage +- [~] Forgot password — add email screen — UI built (`app/login/forgot`); not yet wired to API +- [~] Forgot password — verify OTP screen — UI built (`app/login/forgot/otp`); not yet wired to API +- [~] Forgot password — change password screen — UI built (`app/login/forgot/reset`); not yet wired to API ## 2. Master Data screens - [ ] Items (list + create/edit, ETag handling) diff --git a/Frontend/erp-system/app/dashboard/layout.tsx b/Frontend/erp-system/app/dashboard/layout.tsx index 19cae9e..3072700 100644 --- a/Frontend/erp-system/app/dashboard/layout.tsx +++ b/Frontend/erp-system/app/dashboard/layout.tsx @@ -1,5 +1,4 @@ import { AppSidebar } from "@/components/Layouts/AppSidebar" -import { Footer } from "@/components/Layouts/Footer" import { Header } from "@/components/Layouts/Header" import { Toaster } from "@/components/ui/toast" @@ -9,20 +8,19 @@ export default function DashboardLayout({ children: React.ReactNode }) { return ( -
+
-
+
{children}
-
diff --git a/Frontend/erp-system/app/dashboard/page.tsx b/Frontend/erp-system/app/dashboard/page.tsx index 35b865c..45b9480 100644 --- a/Frontend/erp-system/app/dashboard/page.tsx +++ b/Frontend/erp-system/app/dashboard/page.tsx @@ -43,7 +43,7 @@ export default function DashboardPage() { const [range, setRange] = React.useState<{ from: Date | undefined; to?: Date | undefined }>() return (
-
+

Breadcrumb

@@ -232,7 +232,7 @@ export default function DashboardPage() {
-
+

Alert Dialogs

@@ -294,7 +294,7 @@ export default function DashboardPage() {
-
+

Sales (Line)

-
+

Revenue (Bar)

-
+

Product Mix (Pie)

diff --git a/Frontend/erp-system/app/login/forgot/otp/page.tsx b/Frontend/erp-system/app/login/forgot/otp/page.tsx index bb97e94..05c8cde 100644 --- a/Frontend/erp-system/app/login/forgot/otp/page.tsx +++ b/Frontend/erp-system/app/login/forgot/otp/page.tsx @@ -25,10 +25,10 @@ export default function ForgotOtpPage() { return (
-
+
-
- +
+

Verify your email

@@ -46,7 +46,7 @@ export default function ForgotOtpPage() { e.preventDefault() handleResend() }} - className="text-sm font-medium text-primary hover:text-primary/80 transition-colors" + className="text-sm font-medium text-black hover:text-black/80 transition-colors" > Didn't receive the code? Resend @@ -57,10 +57,10 @@ export default function ForgotOtpPage() {
- + - +
diff --git a/Frontend/erp-system/app/login/forgot/page.tsx b/Frontend/erp-system/app/login/forgot/page.tsx index 0f04115..1b02ea7 100644 --- a/Frontend/erp-system/app/login/forgot/page.tsx +++ b/Frontend/erp-system/app/login/forgot/page.tsx @@ -19,8 +19,8 @@ export default function ForgotEmailPage() { return (
-
-
+
+

Reset your password

Enter the email address associated with your account and we'll send you a one-time code to verify your identity.

@@ -41,7 +41,7 @@ export default function ForgotEmailPage() {
- -
- -
diff --git a/Frontend/erp-system/app/login/forgot/reset/page.tsx b/Frontend/erp-system/app/login/forgot/reset/page.tsx index 1e17948..d784d27 100644 --- a/Frontend/erp-system/app/login/forgot/reset/page.tsx +++ b/Frontend/erp-system/app/login/forgot/reset/page.tsx @@ -39,8 +39,8 @@ export default function ForgotResetPage() { return (
-
-
+
+

Create a new password

Choose a strong password to secure your account.

@@ -55,7 +55,7 @@ export default function ForgotResetPage() { value={password} onChange={(e) => setPassword((e.target as HTMLInputElement).value)} className="h-11 pr-11" - placeholder="••••••••" + placeholder="Enter your new password" /> @@ -119,7 +119,7 @@ export default function ForgotResetPage() {
- +
@@ -131,7 +131,7 @@ export default function ForgotResetPage() {
-
diff --git a/Frontend/erp-system/app/login/page.tsx b/Frontend/erp-system/app/login/page.tsx index 5949830..59b6817 100644 --- a/Frontend/erp-system/app/login/page.tsx +++ b/Frontend/erp-system/app/login/page.tsx @@ -106,7 +106,7 @@ export default function LoginPage() { type={showPassword ? "text" : "password"} autoComplete="current-password" className="h-11 rounded-lg px-4 pr-11 text-base" - placeholder="••••••••" + placeholder="Enter your password" aria-invalid={!!form.formState.errors.password} {...form.register("password")} /> @@ -161,7 +161,7 @@ export default function LoginPage() {