From 942634c98e61806a56023dde5ee34fd8c86046ff Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Wed, 10 Jun 2026 12:30:14 +0330 Subject: [PATCH] refactor: update UI components for consistency and dark mode support - Refactored PaymentsPage, RatingsPage, RepresentationDetailPage, RepresentationsPage, SecretariesPage, SettlementsPage, SmsPage, UserDetailPage, and UsersPage to use consistent class names for styling. - Updated button styles to use new utility classes for primary, secondary, and danger buttons. - Enhanced dark mode support across various components by adjusting text and background colors. - Introduced new utility classes for form inputs, labels, and info rows to standardize styling. - Implemented Zustand for persistent UI state management, including dark mode toggle functionality. - Updated CSS to include new styles for skeleton loading and animations. - Added optional dependencies for improved compatibility with different platforms. --- .../admin/components/layout/AdminLayout.tsx | 15 +- assets/admin/components/layout/Sidebar.tsx | 112 +++--- assets/admin/components/layout/Topbar.tsx | 74 ++-- assets/admin/components/ui/ConfirmDialog.tsx | 36 +- assets/admin/components/ui/DataTable.tsx | 77 ++-- assets/admin/components/ui/Modal.tsx | 43 ++- assets/admin/components/ui/PageHeader.tsx | 23 +- assets/admin/components/ui/Pagination.tsx | 25 +- assets/admin/components/ui/StatusBadge.tsx | 80 ++--- assets/admin/pages/AppointmentDetailPage.tsx | 18 +- assets/admin/pages/AppointmentsPage.tsx | 8 +- assets/admin/pages/BlogFormPage.tsx | 26 +- assets/admin/pages/BlogsPage.tsx | 12 +- assets/admin/pages/CategoriesPage.tsx | 34 +- assets/admin/pages/ClinicDetailPage.tsx | 12 +- assets/admin/pages/ClinicsPage.tsx | 10 +- assets/admin/pages/CommentsPage.tsx | 8 +- assets/admin/pages/DashboardPage.tsx | 336 ++++++++++++------ assets/admin/pages/DoctorDetailPage.tsx | 12 +- assets/admin/pages/DoctorsPage.tsx | 14 +- assets/admin/pages/LoginPage.tsx | 187 +++++++--- assets/admin/pages/PaymentDetailPage.tsx | 12 +- assets/admin/pages/PaymentsPage.tsx | 8 +- assets/admin/pages/RatingsPage.tsx | 4 +- .../admin/pages/RepresentationDetailPage.tsx | 30 +- assets/admin/pages/RepresentationsPage.tsx | 30 +- assets/admin/pages/SecretariesPage.tsx | 14 +- assets/admin/pages/SettlementsPage.tsx | 16 +- assets/admin/pages/SmsPage.tsx | 32 +- assets/admin/pages/UserDetailPage.tsx | 12 +- assets/admin/pages/UsersPage.tsx | 12 +- assets/admin/stores/uiStore.ts | 31 +- assets/admin/styles.css | 136 ++++++- package-lock.json | 11 +- package.json | 6 + 35 files changed, 967 insertions(+), 549 deletions(-) diff --git a/assets/admin/components/layout/AdminLayout.tsx b/assets/admin/components/layout/AdminLayout.tsx index fe7e5e1b..0d76c445 100644 --- a/assets/admin/components/layout/AdminLayout.tsx +++ b/assets/admin/components/layout/AdminLayout.tsx @@ -1,15 +1,22 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { Outlet } from 'react-router-dom'; import Sidebar from './Sidebar'; import Topbar from './Topbar'; +import { useUiStore } from '../../stores/uiStore'; export default function AdminLayout() { + const darkMode = useUiStore((s) => s.darkMode); + + useEffect(() => { + document.documentElement.classList.toggle('dark', darkMode); + }, [darkMode]); + return ( -