// src/components/DBManager.tsx import React, { useState, useEffect } from 'react'; import apiClient from '../services/api'; interface DomainConfig { domain_id: string; name: string; } interface DBManagerProps { activeDomain: string; setActiveDomain: (domain: string) => void; } const DBManager: React.FC = ({ activeDomain, setActiveDomain }) => { const [domains, setDomains] = useState([]); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(''); useEffect(() => { const fetchDomains = async () => { try { const response = await apiClient.get('/config/domains'); setDomains(response.data); // Set a default active DB if the current one isn't in the list if (response.data.length > 0 && !response.data.some((d: DomainConfig) => d.domain_id === activeDomain)) { setActiveDomain(response.data[0].domain_id); } } catch (err) { setError('Failed to load domains.'); console.error(err); } finally { setIsLoading(false); } }; fetchDomains(); }, [activeDomain, setActiveDomain]); useEffect(() => { // When activeDomain changes, post it to the backend if (activeDomain) { const postActiveDomain = async () => { try { await apiClient.post('/config/domains/active', { domain_id: activeDomain }); } catch (err) { console.error("Failed to set active domain", err); } }; postActiveDomain(); } }, [activeDomain]); if (isLoading) { return

Knowledge Base Management

Loading domains...

; } if (error) { return

Knowledge Base Management

{error}

; } return (

Knowledge Base Management

); }; export default DBManager;