import React, { useState } from "react"; import axios from "axios"; import "./App.css"; function App() { const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [action, setAction] = useState("login"); const [message, setMessage] = useState(""); const [isLoggedIn, setIsLoggedIn] = useState(false); const [selectedOption, setSelectedOption] = useState(""); const [language, setLanguage] = useState(""); const [codePrompt, setCodePrompt] = useState(""); const [modifyCode, setModifyCode] = useState(""); const [modifyLogic, setModifyLogic] = useState(""); const [userId, setUserId] = useState(null); const [loading, setLoading] = useState(false); // New loading state const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); // Show loader try { const response = await axios.post("http://localhost:5003/auth", { username, password, action, }); setLoading(false); // Hide loader if (response.data.success) { setMessage(response.data.message); setIsLoggedIn(true); setUserId(response.data.userId); } else { setMessage(response.data.message); } } catch (error) { setLoading(false); setMessage("Error connecting to the server."); } }; const handleOptionSubmit = async () => { setLoading(true); // Show loader before request try { let finalPrompt = ""; if (selectedOption === "Generate Code") { finalPrompt = Generate code for ${codePrompt}; if (language) { finalPrompt += ` in ${language}`; } } else if (selectedOption === "Modify Code") { if (modifyLogic && modifyCode) { finalPrompt = ${modifyLogic} the following code:\n\n${modifyCode}; } else { finalPrompt = Modify the following code:\n\n${modifyCode}; } } const response = await axios.post("http://localhost:5003/store-option", { userId, option: selectedOption, language, codePrompt: finalPrompt, modifyCode: finalPrompt, modifyLogic, }); setLoading(false); // Hide loader after response setMessage(response.data.message); } catch (error) { setLoading(false); setMessage("Error storing data."); } }; return (
{message}
{message}