diff --git a/frontend/src/components/admin/SettingsManager.tsx b/frontend/src/components/admin/SettingsManager.tsx new file mode 100644 index 0000000..835c6ee --- /dev/null +++ b/frontend/src/components/admin/SettingsManager.tsx @@ -0,0 +1,143 @@ +import React, { useState, useEffect } from 'react'; +import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { Badge } from '@/components/ui/badge'; + +export default function SettingsManager() { + const [activeTab, setActiveTab] = useState('general'); + const [health, setHealth] = useState(null); + const [loading, setLoading] = useState(false); + + useEffect(() => { + checkHealth(); + }, []); + + const checkHealth = async () => { + setLoading(true); + try { + const start = Date.now(); + const res = await fetch('/api/seo/stats'); + const latency = Date.now() - start; + const data = await res.json(); + setHealth({ + api: res.ok, + latency, + version: '1.0.0', + directus: data.success ? 'Connected' : 'Error', + env: process.env.NODE_ENV || 'production' + }); + } catch (e: any) { + setHealth({ api: false, error: e.message }); + } + setLoading(false); + }; + + return ( +
+

System Settings

+ + {/* Tabs */} +
+ + +
+ + {/* General Tab */} + {activeTab === 'general' && ( +
+ + + Admin Profile + Current session information + + +
+
+ +
Administrator
+
+
+ +
Full System Access
+
+
+
+ +
+
+
+ + + + Configuration + Global system defaults + + +
+ Configuration for API limits, default SEO constraints, and other system-wide constants are managed via Environment Variables or the Directus Settings collection. +
+ +
+
+
+ )} + + {/* Health Tab */} + {activeTab === 'health' && ( +
+ + + System Diagnostics +
+ Real-time system status check + +
+
+ +
+
+ API Connectivity + {health?.api ? ( + Online ({health.latency}ms) + ) : ( + Offline + )} +
+
+ Directus Backend + + {health?.directus || 'Checking...'} + +
+
+ Frontend Version + {health?.version || '1.0.0'} +
+
+ Environment + {health?.env || 'PRODUCTION'} +
+
+
+
+
+ )} +
+ ); +} diff --git a/frontend/src/pages/admin/settings.astro b/frontend/src/pages/admin/settings.astro index f3cf16b..5cde7fd 100644 --- a/frontend/src/pages/admin/settings.astro +++ b/frontend/src/pages/admin/settings.astro @@ -1,19 +1,9 @@ --- import Layout from '@/layouts/AdminLayout.astro'; +import SettingsManager from '@/components/admin/SettingsManager'; --- - -
-

System Settings

- -
-
- -
-

Global Configuration

-

- System-wide settings for API keys, user management, and global defaults will go here. -

-
+
+