import { useEffect, useState } from "react"; import { motion } from "framer-motion"; import { FaCog, FaSave } from "react-icons/fa"; import { api } from "../API/api"; import { useLoading } from "../Context/LoadingContext"; const SettingsPage = () => { const { setLoading } = useLoading(); const [settingsData, setSettingsData] = useState([]); useEffect(() => { fetchSettings(); }, []); const fetchSettings = async () => { try { setLoading(true); const res = await api.get("/client/get-settings"); setSettingsData(res); } catch (e) { console.error(e); } setLoading(false); }; const handleUpdate = async (transid, newValue) => { try { setLoading(true); await api.post("/admin/update-settings", { transid, value: newValue }); alert("Setting updated successfully"); fetchSettings(); } catch (e) { console.error(e); } setLoading(false); }; return (

General Settings

System-wide configuration values

{settingsData.map((item, i) => ( { setSettingsData(settingsData.map((s) => s.transid === item.transid ? { ...s, value: e.target.value } : s )); }} className="input-field mb-3" /> handleUpdate(item.transid, item.value)} className="btn-primary flex items-center gap-2 w-full justify-center" style={{ padding: "0.55rem 1rem", fontSize: "0.8rem" }} whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.97 }} > Update ))}
); }; export default SettingsPage;