feat(profile,dashboard): add user ID & joined date, password toggles, and cleanup health bar
Summary of Changes
This pull request introduces UX/security enhancements to the user profile settings, cleans up unnecessary runtime badges from the dashboard health bar, and ensures consistent table formatting across the application.
Key Features & Updates
1. User Profile & Account Details (/settings/profile)
-
Account Identity & Joined Date:
- Reorganized input layout into a clean 2x2 grid:
-
Row 1: User ID (
userId) with one-click copy button (visual checkmark & toast feedback) and Joined Date (createdAt, localized viaformatDate). -
Row 2: Full Name (
fullName) and Email Address (email).
-
Row 1: User ID (
- Removed the calendar icon before the Joined Date label for a cleaner, unified typography.
- Reorganized input layout into a clean 2x2 grid:
-
Password Visibility Toggles:
- Added interactive show/hide password toggle buttons (
Eye/EyeOfficons) for:- Current password input
- New password input
- Confirm new password input
- Account deactivation confirmation modal
- Added interactive show/hide password toggle buttons (
2. Dashboard Ecosystem Monitoring (/)
-
Service Health Bar Cleanup:
- Removed the
Node.js • v22.14.0 Healthyruntime badge to reduce clutter. - Streamlined the widget to focus on core infrastructure services: PostgreSQL, Redis / BullMQ, and system uptime & memory metrics.
- Cleaned up unused Lucide icons (
Cpu) and variables.
- Removed the
3. Table Consistency & Project Standards
-
Unified Table Standards:
- Standardized pagination footers across all data tables (
TablePagination+PageSizeSelect). - Added interactive column sort indicators (
TableSortHeader). - Fixed dropdown stacking context (
z-index) issues. - Documented design and component rules in
AGENTS.md.
- Standardized pagination footers across all data tables (
4. Internationalization (i18n)
- Updated both Vietnamese (
vi) and English (en) dictionaries intranslations.tswith 100% key parity for all newly added labels and actions.