diff --git a/src/pages/AdminDashboard.tsx b/src/pages/AdminDashboard.tsx index a53c212..c0fd632 100644 --- a/src/pages/AdminDashboard.tsx +++ b/src/pages/AdminDashboard.tsx @@ -178,7 +178,7 @@ function StatCard({ title, value, subtitle, icon, color, trend }: StatCardProps) }; return ( -
+
{icon}
{trend && ( @@ -230,7 +230,7 @@ function NodeCard({ node, onRestart, onToggle, isLoading }: NodeCardProps) { return (
@@ -499,7 +499,7 @@ export default function AdminDashboard() {
{/* Nodes Section */} -
+
@@ -568,7 +568,7 @@ export default function AdminDashboard() { {/* Revenue and Subscriptions */}
{/* Revenue Chart */} -
+
@@ -602,7 +602,7 @@ export default function AdminDashboard() {
{/* Subscription Stats */} -
+
@@ -701,7 +701,7 @@ export default function AdminDashboard() { {/* Tariff Stats */} {stats?.tariff_stats && stats.tariff_stats.tariffs.length > 0 && ( -
+
@@ -778,7 +778,7 @@ export default function AdminDashboard() {
{/* Top Referrers */} {referrers && (referrers.by_earnings.length > 0 || referrers.by_invited.length > 0) && ( -
+
@@ -918,7 +918,7 @@ export default function AdminDashboard() { {/* Top Campaigns */} {campaigns && campaigns.campaigns.length > 0 && ( -
+
@@ -981,7 +981,7 @@ export default function AdminDashboard() { {/* Recent Payments */} {payments && payments.payments.length > 0 && ( -
+
diff --git a/src/pages/AdminPanel.tsx b/src/pages/AdminPanel.tsx index 088869c..44121da 100644 --- a/src/pages/AdminPanel.tsx +++ b/src/pages/AdminPanel.tsx @@ -690,7 +690,7 @@ const StatsBar = memo(function StatsBar({ systemInfo, dashboardStats, loading }:
state.hasPermission); const [hoveredItem, setHoveredItem] = useState(null); - const cardRef = useRef(null); - const [tilt, setTilt] = useState({ x: 0, y: 0 }); - const tiltRef = useRef({ x: 0, y: 0 }); - const rafRef = useRef(0); - - useEffect(() => () => cancelAnimationFrame(rafRef.current), []); - - const onMouseMove = useCallback((e: React.MouseEvent) => { - if (!cardRef.current) return; - const rect = cardRef.current.getBoundingClientRect(); - tiltRef.current = { - x: ((e.clientY - rect.top) / rect.height - 0.5) * -2.5, - y: ((e.clientX - rect.left) / rect.width - 0.5) * 2.5, - }; - cancelAnimationFrame(rafRef.current); - rafRef.current = requestAnimationFrame(() => { - setTilt({ ...tiltRef.current }); - }); - }, []); - - const onMouseLeave = useCallback(() => { - cancelAnimationFrame(rafRef.current); - setTilt({ x: 0, y: 0 }); - }, []); + // 3D mouse-tracking tilt removed: decorative motion that didn't convey state. + // Hover styling alone signals interactivity. + void index; const visibleItems = useMemo( () => @@ -796,31 +775,14 @@ const GlassCard = memo(function GlassCard({ section, index, searchTerm }: GlassC if (visibleItems.length === 0) return null; return ( -
- {/* Top glow line */} -
- +
{/* Header */}
- {/* Shine overlay */} -
-
@@ -836,16 +798,13 @@ const GlassCard = memo(function GlassCard({ section, index, searchTerm }: GlassC key={item.to} to={item.to} className={cn( - 'group/item flex items-center gap-2.5 rounded-xl border border-transparent px-2 py-1.5 transition-all duration-150', + 'group/item flex items-center gap-2.5 rounded-xl border border-transparent px-2 py-1.5 transition-colors duration-150', hoveredItem === i ? 'border-dark-600/50 bg-dark-700/30 light:border-champagne-400/40 light:bg-champagne-200/50' : 'hover:border-dark-600/50 hover:bg-dark-700/30 light:hover:border-champagne-400/40 light:hover:bg-champagne-200/50', )} onMouseEnter={() => setHoveredItem(i)} onMouseLeave={() => setHoveredItem(null)} - style={{ - animation: `adminItemEnter 0.35s cubic-bezier(0.22, 1, 0.36, 1) ${index * 60 + i * 20}ms both`, - }} > {/* Icon */}
-

+

{t('admin.panel.title')}

-