@@ -171,7 +193,12 @@ export const ClassesTab: React.FC = () => {
setPage(1);
}}
/>
- 🔍
+
+
+
- 💼 {cl.specializeName || 'Chưa có chuyên ngành'}
+
+
+ {cl.specializeName || 'Chưa có chuyên ngành'}
-
- 📍 {cl.systemName || `Hệ thống ${cl.systemRkId || 'Khác'}`}
+
+
+ {cl.systemName || `Hệ thống ${cl.systemRkId || 'Khác'}`}
|
@@ -272,8 +312,12 @@ export const ClassesTab: React.FC = () => {
|
-
- 👤 {cl.studentCount} SV
+
+
+ {cl.studentCount} SV
|
@@ -304,7 +348,13 @@ export const ClassesTab: React.FC = () => {
style={{ padding: '0.5rem 0.95rem', fontSize: '0.8rem', fontWeight: 600, display: 'inline-flex', alignItems: 'center', gap: '0.35rem' }}
onClick={() => openClass('classes', cl.rkId, cl.name)}
>
- 👥 Xem lớp
+
+ Xem lớp
|
@@ -327,8 +377,11 @@ export const ClassesTab: React.FC = () => {
className="pagination-btn"
onClick={() => setPage(p => Math.max(1, p - 1))}
disabled={page === 1}
+ style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center' }}
>
- ◀
+
Trang {page} / {Math.ceil(total / pageSize) || 1}
@@ -337,8 +390,11 @@ export const ClassesTab: React.FC = () => {
className="pagination-btn"
onClick={() => setPage(p => p + 1)}
disabled={page >= Math.ceil(total / pageSize)}
+ style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center' }}
>
- ▶
+
diff --git a/management/src/components/DashboardTab.tsx b/management/src/components/DashboardTab.tsx
index bf0b0e5..656e39d 100644
--- a/management/src/components/DashboardTab.tsx
+++ b/management/src/components/DashboardTab.tsx
@@ -1,16 +1,73 @@
import React, { useEffect, useState } from 'react';
-import { api } from '../api';
+import { api, type GuideLinkItem } from '../api';
import type { StatsResponse } from '../api';
+import { useAuth } from '../auth/AuthContext';
interface DashboardTabProps {
onNavigate: (tab: string) => void;
}
+const IconClasses = () => (
+