{links.map((link) => {
diff --git a/frontend/src/config.js b/frontend/src/config.js
index 23543d2..4e4ac86 100644
--- a/frontend/src/config.js
+++ b/frontend/src/config.js
@@ -1,3 +1,3 @@
-export const API_URL = import.meta.env.VITE_API_URL !== undefined
+export const API_URL = import.meta.env.VITE_API_URL
? import.meta.env.VITE_API_URL
- : 'http://localhost:8080';
+ : (import.meta.env.MODE === 'test' ? 'http://localhost:8080' : '');
diff --git a/frontend/src/pages/Admin/ManageStats.jsx b/frontend/src/pages/Admin/ManageStats.jsx
index 1426d2c..055cee7 100644
--- a/frontend/src/pages/Admin/ManageStats.jsx
+++ b/frontend/src/pages/Admin/ManageStats.jsx
@@ -1,36 +1,79 @@
-import { useState, useEffect } from 'react';
+import PropTypes from 'prop-types';
+import { useState } from 'react';
import { useGetStatsQuery, useAddStatsMutation, useUpdateStatsMutation } from '../../store/apiSlice';
-export default function ManageStats() {
- const { data, isLoading } = useGetStatsQuery();
- const [addStats, { isLoading: isAdding }] = useAddStatsMutation();
- const [updateStats, { isLoading: isUpdating }] = useUpdateStatsMutation();
- const [stats, setStats] = useState(null);
-
- useEffect(() => {
- // eslint-disable-next-line
- if (data) setStats(data);
- }, [data]);
+function StatsForm({ initialData, onSave, isSaving }) {
+ const [stats, setStats] = useState(initialData);
const handleChange = (e) => {
const { name, value } = e.target;
setStats(prev => ({ ...prev, [name]: value }));
};
- const handleSave = async (e) => {
+ const handleSubmit = (e) => {
e.preventDefault();
+ onSave(stats);
+ };
+
+ return (
+
+ );
+}
+
+StatsForm.propTypes = {
+ initialData: PropTypes.object.isRequired,
+ onSave: PropTypes.func.isRequired,
+ isSaving: PropTypes.bool.isRequired
+};
+
+export default function ManageStats() {
+ const { data, isLoading } = useGetStatsQuery();
+ const [addStats, { isLoading: isAdding }] = useAddStatsMutation();
+ const [updateStats, { isLoading: isUpdating }] = useUpdateStatsMutation();
+
+ const handleSave = async (updatedStats) => {
try {
- if (stats.id) {
- await updateStats(stats).unwrap();
+ if (updatedStats.id) {
+ await updateStats(updatedStats).unwrap();
} else {
- await addStats(stats).unwrap();
+ await addStats(updatedStats).unwrap();
}
} catch (err) {
console.error('Failed to save stats', err);
}
};
- if (isLoading || !stats) return
Loading...
;
+ if (isLoading || !data) return
Loading...
;
return (
@@ -38,37 +81,12 @@ export default function ManageStats() {
monitoring
System Stats Overview
-
+
);
}
diff --git a/frontend/src/pages/Contact.jsx b/frontend/src/pages/Contact.jsx
index 08b5576..0bfb23a 100644
--- a/frontend/src/pages/Contact.jsx
+++ b/frontend/src/pages/Contact.jsx
@@ -82,43 +82,43 @@ export default function Contact() {
{/* Form Section */}