From e6460de4d05306823e5f37f41900b31d9eb63c2b Mon Sep 17 00:00:00 2001 From: root Date: Sat, 27 Jun 2026 23:12:24 -0400 Subject: [PATCH] add eye for all password fields --- .../src/app/dashboard/admin-users/page.tsx | 38 ++++- apps/admin/src/app/reset-password/page.tsx | 76 ++++++--- .../src/app/(dashboard)/settings/page.tsx | 22 ++- apps/dashboard/src/app/onboarding/page.tsx | 34 ++++- .../src/components/auth/ResetPasswordForm.tsx | 144 +++++++++++++----- .../src/components/auth/SignInForm.tsx | 70 ++++++--- 6 files changed, 291 insertions(+), 93 deletions(-) diff --git a/apps/admin/src/app/dashboard/admin-users/page.tsx b/apps/admin/src/app/dashboard/admin-users/page.tsx index d2283e1..45f320e 100644 --- a/apps/admin/src/app/dashboard/admin-users/page.tsx +++ b/apps/admin/src/app/dashboard/admin-users/page.tsx @@ -31,6 +31,7 @@ export default function AdminUsersPage() { const [showModal, setShowModal] = useState(false) const [editingAdminId, setEditingAdminId] = useState(null) const [form, setForm] = useState(EMPTY_FORM) + const [showPassword, setShowPassword] = useState(false) const [saving, setSaving] = useState(false) async function fetchAdmins() { @@ -54,6 +55,7 @@ export default function AdminUsersPage() { function openCreateModal() { setEditingAdminId(null) setForm(EMPTY_FORM) + setShowPassword(false) setError(null) setShowModal(true) } @@ -75,6 +77,7 @@ export default function AdminUsersPage() { function closeModal() { setShowModal(false) setEditingAdminId(null) + setShowPassword(false) setForm(EMPTY_FORM) } @@ -232,14 +235,33 @@ export default function AdminUsersPage() { - setForm({ ...form, password: e.target.value })} - /> +
+ setForm({ ...form, password: e.target.value })} + /> + +
diff --git a/apps/admin/src/app/reset-password/page.tsx b/apps/admin/src/app/reset-password/page.tsx index 937c018..0b637f1 100644 --- a/apps/admin/src/app/reset-password/page.tsx +++ b/apps/admin/src/app/reset-password/page.tsx @@ -20,7 +20,9 @@ function AdminResetPasswordContent() { const token = searchParams.get('token') const [password, setPassword] = useState('') + const [showPassword, setShowPassword] = useState(false) const [confirm, setConfirm] = useState('') + const [showConfirm, setShowConfirm] = useState(false) const [loading, setLoading] = useState(false) const [done, setDone] = useState(false) const [error, setError] = useState(null) @@ -95,27 +97,65 @@ function AdminResetPasswordContent() { )}
- setPassword(e.target.value)} - placeholder="••••••••" - className="w-full rounded-2xl border border-stone-200 bg-white px-4 py-3 text-sm text-stone-900 focus:border-transparent focus:outline-none focus:ring-2 focus:ring-orange-500 dark:border-blue-800 dark:bg-[#07101e]/80 dark:text-stone-100" - /> +
+ setPassword(e.target.value)} + placeholder="••••••••" + className="w-full rounded-2xl border border-stone-200 bg-white px-4 py-3 pr-10 text-sm text-stone-900 focus:border-transparent focus:outline-none focus:ring-2 focus:ring-orange-500 dark:border-blue-800 dark:bg-[#07101e]/80 dark:text-stone-100" + /> + +
- setConfirm(e.target.value)} - placeholder="••••••••" - className="w-full rounded-2xl border border-stone-200 bg-white px-4 py-3 text-sm text-stone-900 focus:border-transparent focus:outline-none focus:ring-2 focus:ring-orange-500 dark:border-blue-800 dark:bg-[#07101e]/80 dark:text-stone-100" - /> +
+ setConfirm(e.target.value)} + placeholder="••••••••" + className="w-full rounded-2xl border border-stone-200 bg-white px-4 py-3 pr-10 text-sm text-stone-900 focus:border-transparent focus:outline-none focus:ring-2 focus:ring-orange-500 dark:border-blue-800 dark:bg-[#07101e]/80 dark:text-stone-100" + /> + +
- setBrand((current) => current ? { ...current, amanpaySecretKey: event.target.value } : current)} /> +
+ setBrand((current) => current ? { ...current, amanpaySecretKey: event.target.value } : current)} /> + +
diff --git a/apps/dashboard/src/app/onboarding/page.tsx b/apps/dashboard/src/app/onboarding/page.tsx index 3fa0cbb..316f36c 100644 --- a/apps/dashboard/src/app/onboarding/page.tsx +++ b/apps/dashboard/src/app/onboarding/page.tsx @@ -14,6 +14,7 @@ export default function OnboardingPage() { const [step, setStep] = useState(1) const [loading, setLoading] = useState(false) const [error, setError] = useState(null) + const [showSecretKey, setShowSecretKey] = useState(false) const [company, setCompany] = useState({ name: '', slug: '' }) const [brand, setBrand] = useState({ @@ -226,13 +227,32 @@ export default function OnboardingPage() {
- setPayments({ ...payments, amanpaySecretKey: e.target.value })} - /> +
+ setPayments({ ...payments, amanpaySecretKey: e.target.value })} + /> + +
diff --git a/apps/homepage/src/components/auth/ResetPasswordForm.tsx b/apps/homepage/src/components/auth/ResetPasswordForm.tsx index 5c64879..1d23cf7 100644 --- a/apps/homepage/src/components/auth/ResetPasswordForm.tsx +++ b/apps/homepage/src/components/auth/ResetPasswordForm.tsx @@ -90,7 +90,9 @@ function ResetPasswordContent({ locale }: { locale: Locale }) { const token = searchParams.get('token'); const [password, setPassword] = useState(''); + const [showPassword, setShowPassword] = useState(false); const [confirm, setConfirm] = useState(''); + const [showConfirm, setShowConfirm] = useState(false); const [loading, setLoading] = useState(false); const [done, setDone] = useState(false); const [error, setError] = useState(null); @@ -236,49 +238,111 @@ function ResetPasswordContent({ locale }: { locale: Locale }) { ) : null} - setPassword(e.target.value)} - placeholder="••••••••" - autoComplete="new-password" - style={{ - width: '100%', - minHeight: '2.875rem', - padding: 'var(--space-3) var(--space-4)', - border: '1px solid var(--border-strong)', - borderRadius: 'var(--radius-sm)', - background: 'var(--surface-primary)', - color: 'var(--text-primary)', - fontSize: '0.875rem', - }} - /> +
+ setPassword(e.target.value)} + placeholder="••••••••" + autoComplete="new-password" + style={{ + width: '100%', + minHeight: '2.875rem', + padding: 'var(--space-3) 2.5rem var(--space-3) var(--space-4)', + border: '1px solid var(--border-strong)', + borderRadius: 'var(--radius-sm)', + background: 'var(--surface-primary)', + color: 'var(--text-primary)', + fontSize: '0.875rem', + }} + /> + +
- setConfirm(e.target.value)} - placeholder="••••••••" - autoComplete="new-password" - style={{ - width: '100%', - minHeight: '2.875rem', - padding: 'var(--space-3) var(--space-4)', - border: '1px solid var(--border-strong)', - borderRadius: 'var(--radius-sm)', - background: 'var(--surface-primary)', - color: 'var(--text-primary)', - fontSize: '0.875rem', - }} - /> +
+ setConfirm(e.target.value)} + placeholder="••••••••" + autoComplete="new-password" + style={{ + width: '100%', + minHeight: '2.875rem', + padding: 'var(--space-3) 2.5rem var(--space-3) var(--space-4)', + border: '1px solid var(--border-strong)', + borderRadius: 'var(--radius-sm)', + background: 'var(--surface-primary)', + color: 'var(--text-primary)', + fontSize: '0.875rem', + }} + /> + +
+