Spaces:
Running
Running
| import React, { useState } from 'react'; | |
| import Sidebar from './OCRSidebar'; | |
| function Credentials({ onSave }) { | |
| const [credentials, setCredentials] = useState({ | |
| sapUrl: '', | |
| clientId: '', | |
| clientSecret: '', | |
| username: '', | |
| password: '', | |
| companyCode: '', | |
| apiKey: '' | |
| }); | |
| const handleChange = (e) => { | |
| const { name, value } = e.target; | |
| setCredentials({ ...credentials, [name]: value }); | |
| }; | |
| const handleSubmit = (e) => { | |
| e.preventDefault(); | |
| onSave(credentials); | |
| }; | |
| return ( | |
| <div className="min-h-screen bg-gray-100 flex"> | |
| <Sidebar /> | |
| <div className="flex-1 p-6"> | |
| <div className="bg-white p-6 rounded-lg shadow-lg w-full max-w-4xl mx-auto"> | |
| <h2 className="text-xl font-semibold text-gray-700 mb-4">Manage Credentials</h2> | |
| <form onSubmit={handleSubmit}> | |
| <div className="mb-4"> | |
| <label className="block text-gray-700 text-sm font-bold mb-2">SAP System URL</label> | |
| <input | |
| type="text" | |
| name="sapUrl" | |
| value={credentials.sapUrl} | |
| onChange={handleChange} | |
| className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" | |
| /> | |
| </div> | |
| <div className="mb-4"> | |
| <label className="block text-gray-700 text-sm font-bold mb-2">Client ID</label> | |
| <input | |
| type="text" | |
| name="clientId" | |
| value={credentials.clientId} | |
| onChange={handleChange} | |
| className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" | |
| /> | |
| </div> | |
| <div className="mb-4"> | |
| <label className="block text-gray-700 text-sm font-bold mb-2">Client Secret</label> | |
| <input | |
| type="text" | |
| name="clientSecret" | |
| value={credentials.clientSecret} | |
| onChange={handleChange} | |
| className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" | |
| /> | |
| </div> | |
| <div className="mb-4"> | |
| <label className="block text-gray-700 text-sm font-bold mb-2">Username</label> | |
| <input | |
| type="text" | |
| name="username" | |
| value={credentials.username} | |
| onChange={handleChange} | |
| className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" | |
| /> | |
| </div> | |
| <div className="mb-4"> | |
| <label className="block text-gray-700 text-sm font-bold mb-2">Password</label> | |
| <input | |
| type="password" | |
| name="password" | |
| value={credentials.password} | |
| onChange={handleChange} | |
| className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" | |
| /> | |
| </div> | |
| <div className="mb-4"> | |
| <label className="block text-gray-700 text-sm font-bold mb-2">Company Code</label> | |
| <input | |
| type="text" | |
| name="companyCode" | |
| value={credentials.companyCode} | |
| onChange={handleChange} | |
| className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" | |
| /> | |
| </div> | |
| <div className="mb-4"> | |
| <label className="block text-gray-700 text-sm font-bold mb-2">API Key (Optional)</label> | |
| <input | |
| type="text" | |
| name="apiKey" | |
| value={credentials.apiKey} | |
| onChange={handleChange} | |
| className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" | |
| /> | |
| </div> | |
| <button type="submit" className="w-full bg-blue-500 text-white py-2 rounded-lg hover:bg-blue-600 transition duration-200"> | |
| Save Credentials | |
| </button> | |
| </form> | |
| </div> | |
| </div> | |
| </div> | |
| ); | |
| } | |
| export default Credentials; | |