diff --git a/src/components/ApiKeysSettings.jsx b/src/components/ApiKeysSettings.jsx deleted file mode 100644 index 1ab27df..0000000 --- a/src/components/ApiKeysSettings.jsx +++ /dev/null @@ -1,373 +0,0 @@ -import { useState, useEffect } from 'react'; -import { Button } from './ui/button'; -import { Input } from './ui/input'; -import { Key, Plus, Trash2, Eye, EyeOff, Copy, Check, Github } from 'lucide-react'; -import { authenticatedFetch } from '../utils/api'; -import { useTranslation } from 'react-i18next'; - -function ApiKeysSettings() { - const { t } = useTranslation('settings'); - const [apiKeys, setApiKeys] = useState([]); - const [githubTokens, setGithubTokens] = useState([]); - const [loading, setLoading] = useState(true); - const [showNewKeyForm, setShowNewKeyForm] = useState(false); - const [showNewTokenForm, setShowNewTokenForm] = useState(false); - const [newKeyName, setNewKeyName] = useState(''); - const [newTokenName, setNewTokenName] = useState(''); - const [newGithubToken, setNewGithubToken] = useState(''); - const [showToken, setShowToken] = useState({}); - const [copiedKey, setCopiedKey] = useState(null); - const [newlyCreatedKey, setNewlyCreatedKey] = useState(null); - - useEffect(() => { - fetchData(); - }, []); - - const fetchData = async () => { - try { - setLoading(true); - - // Fetch API keys - const apiKeysRes = await authenticatedFetch('/api/settings/api-keys'); - const apiKeysData = await apiKeysRes.json(); - setApiKeys(apiKeysData.apiKeys || []); - - // Fetch GitHub tokens - const githubRes = await authenticatedFetch('/api/settings/credentials?type=github_token'); - const githubData = await githubRes.json(); - setGithubTokens(githubData.credentials || []); - } catch (error) { - console.error('Error fetching settings:', error); - } finally { - setLoading(false); - } - }; - - const createApiKey = async () => { - if (!newKeyName.trim()) return; - - try { - const res = await authenticatedFetch('/api/settings/api-keys', { - method: 'POST', - body: JSON.stringify({ keyName: newKeyName }) - }); - - const data = await res.json(); - if (data.success) { - setNewlyCreatedKey(data.apiKey); - setNewKeyName(''); - setShowNewKeyForm(false); - fetchData(); - } - } catch (error) { - console.error('Error creating API key:', error); - } - }; - - const deleteApiKey = async (keyId) => { - if (!confirm(t('apiKeys.confirmDelete'))) return; - - try { - await authenticatedFetch(`/api/settings/api-keys/${keyId}`, { - method: 'DELETE' - }); - fetchData(); - } catch (error) { - console.error('Error deleting API key:', error); - } - }; - - const toggleApiKey = async (keyId, isActive) => { - try { - await authenticatedFetch(`/api/settings/api-keys/${keyId}/toggle`, { - method: 'PATCH', - body: JSON.stringify({ isActive: !isActive }) - }); - fetchData(); - } catch (error) { - console.error('Error toggling API key:', error); - } - }; - - const createGithubToken = async () => { - if (!newTokenName.trim() || !newGithubToken.trim()) return; - - try { - const res = await authenticatedFetch('/api/settings/credentials', { - method: 'POST', - body: JSON.stringify({ - credentialName: newTokenName, - credentialType: 'github_token', - credentialValue: newGithubToken - }) - }); - - const data = await res.json(); - if (data.success) { - setNewTokenName(''); - setNewGithubToken(''); - setShowNewTokenForm(false); - fetchData(); - } - } catch (error) { - console.error('Error creating GitHub token:', error); - } - }; - - const deleteGithubToken = async (tokenId) => { - if (!confirm(t('apiKeys.github.confirmDelete'))) return; - - try { - await authenticatedFetch(`/api/settings/credentials/${tokenId}`, { - method: 'DELETE' - }); - fetchData(); - } catch (error) { - console.error('Error deleting GitHub token:', error); - } - }; - - const toggleGithubToken = async (tokenId, isActive) => { - try { - await authenticatedFetch(`/api/settings/credentials/${tokenId}/toggle`, { - method: 'PATCH', - body: JSON.stringify({ isActive: !isActive }) - }); - fetchData(); - } catch (error) { - console.error('Error toggling GitHub token:', error); - } - }; - - const copyToClipboard = (text, id) => { - navigator.clipboard.writeText(text); - setCopiedKey(id); - setTimeout(() => setCopiedKey(null), 2000); - }; - - if (loading) { - return
- {t('apiKeys.newKey.alertMessage')} -
-
- {newlyCreatedKey.apiKey}
-
-
- - {t('apiKeys.description')} -
- - {showNewKeyForm && ( -{t('apiKeys.empty')}
- ) : ( - apiKeys.map((key) => ( -{key.api_key}
- - {t('apiKeys.github.description')} -
- - {showNewTokenForm && ( -{t('apiKeys.github.empty')}
- ) : ( - githubTokens.map((token) => ( -- {t('apiKeys.documentation.description')} -
- - {t('apiKeys.documentation.viewLink')} - -