| import React, { useState } from 'react'; | |
| import { toast } from 'react-toastify'; | |
| import Cookies from 'js-cookie'; | |
| import { logStore } from '~/lib/stores/logs'; | |
| export default function ConnectionsTab() { | |
| const [githubUsername, setGithubUsername] = useState(Cookies.get('githubUsername') || ''); | |
| const [githubToken, setGithubToken] = useState(Cookies.get('githubToken') || ''); | |
| const handleSaveConnection = () => { | |
| Cookies.set('githubUsername', githubUsername); | |
| Cookies.set('githubToken', githubToken); | |
| logStore.logSystem('GitHub connection settings updated', { | |
| username: githubUsername, | |
| hasToken: !!githubToken, | |
| }); | |
| toast.success('GitHub credentials saved successfully!'); | |
| Cookies.set('git:github.com', JSON.stringify({ username: githubToken, password: 'x-oauth-basic' })); | |
| }; | |
| return ( | |
| <div className="p-4 mb-4 border border-bolt-elements-borderColor rounded-lg bg-bolt-elements-background-depth-3"> | |
| <h3 className="text-lg font-medium text-bolt-elements-textPrimary mb-4">GitHub Connection</h3> | |
| <div className="flex mb-4"> | |
| <div className="flex-1 mr-2"> | |
| <label className="block text-sm text-bolt-elements-textSecondary mb-1">GitHub Username:</label> | |
| <input | |
| type="text" | |
| value={githubUsername} | |
| onChange={(e) => setGithubUsername(e.target.value)} | |
| className="w-full bg-white dark:bg-bolt-elements-background-depth-4 relative px-2 py-1.5 rounded-md focus:outline-none placeholder-bolt-elements-textTertiary text-bolt-elements-textPrimary dark:text-bolt-elements-textPrimary border border-bolt-elements-borderColor" | |
| /> | |
| </div> | |
| <div className="flex-1"> | |
| <label className="block text-sm text-bolt-elements-textSecondary mb-1">Personal Access Token:</label> | |
| <input | |
| type="password" | |
| value={githubToken} | |
| onChange={(e) => setGithubToken(e.target.value)} | |
| className="w-full bg-white dark:bg-bolt-elements-background-depth-4 relative px-2 py-1.5 rounded-md focus:outline-none placeholder-bolt-elements-textTertiary text-bolt-elements-textPrimary dark:text-bolt-elements-textPrimary border border-bolt-elements-borderColor" | |
| /> | |
| </div> | |
| </div> | |
| <div className="flex mb-4"> | |
| <button | |
| onClick={handleSaveConnection} | |
| className="bg-bolt-elements-button-primary-background rounded-lg px-4 py-2 mr-2 transition-colors duration-200 hover:bg-bolt-elements-button-primary-backgroundHover text-bolt-elements-button-primary-text" | |
| > | |
| Save Connection | |
| </button> | |
| </div> | |
| </div> | |
| ); | |
| } | |